我们正在尝试解决遗留UI和遗留架构的问题,其中在多用户环境中以5分钟的间隔调用具有多个联接的复杂查询,对于一百万条记录,性能大幅下降。为了解决这个问题,我们尝试使用远程服务器(具有8GB RAM和Weblogic应用程序的VM)上的ehcache使用RMI和ehcache的内置查询工具将查询中的整个结果集保留在内存中,我们能够获得良好的性能来获取记录。需要。我们构建了一个API,可以在发生更改或插入时帮助监视和更新每条记录。我们面临的问题是将整个结果集(100万条记录)缓存在ehcache的内存中并经常查询它导致几乎6GB +的使用率,查询性能逐渐降低,直到看起来GC完成然后性能再次出现恢复正常(观察Visualvm上的用法)。结果集中的每条记录都存储为一个对象,其主键值为其键。 解决这个问题的好方法是什么?考虑将对象设置为永不过期,并且在更新时使用代码手动删除所有不需要的记录 有没有更好的方法来看待这个问题?
答案 0 :(得分:0)
快速选项列表: