我们正在尝试缓存数据库选择的结果(在哈希图中),因此我们不必多次执行它们。并且每当我们更改数据库时,为了获得应用程序中的更改,我们添加了刷新列表功能。
现在我们要提取的列表数量很大,因此从数据库加载选择列表花费了太多时间。
所以我对这个问题有一些疑问:
我如何找出列表使用了多少内存? (我使用的方法是,我们使用垃圾收集器来收集内存并计算差异,但是列表很多,因此花费了太多时间)
如何优化刷新列表?
谢谢您的帮助。
最佳答案
我如何才能找到列表使用了多少内存
JProfiler
VisualVM
我如何优化刷新列表。
确保您使用的数据类型正确。
看看here。
还可以查看Guava collections。
最后一件事,ignis建议您不要使用System.gc()
是正确的,这可能就是您遇到性能问题的原因。 This是为什么。
关于java - 我怎么知道我的缓存对象正在使用多少内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6198639/