我解决了我的问题。
我从@TrashGod那里得到了使用dispose()的线索。但这对我不直接起作用。
我将图表面板直接添加到我的主Jframe容器中。就我而言,我想一遍又一遍地在同一Jframe容器中创建图表。
我首先尝试清除数据集,然后在图表面板上调用removeall(),但没有帮助。
然后,我找到的解决方案是创建另一个Jframe并将图表面板添加到其中。当我关闭此Jframe时,我再次清除数据集,并在图表面板上调用removeall(),也称为dispose()。因此,每次创建新图表时,都会创建此Jframe及其子组件,并在退出该Jframe时将其完全废弃。
因此,当创建图表时,将创建一个新的Jframe,然后对其进行处理。
我还应该补充一点,进行此更改后,我开始在Java VisualVM
Profiler中看到“锯齿”模式。我还使用了Jprofiler,当我在运行程序时看到超过100,000个对象被创建时,我感到震惊。现在,我看到创建了9000个对象,并且对于JFree包它保持不变,并且根据检索到的结果集,数据库包中对象的数量增加或减少。
我要做的另一件事是使我的SQL进行解析并将其转换为数字。我想减少创建的对象数量,还希望减少程序对每个检索到的记录所做的处理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)