我正在编写一个测试程序,如下所示:
- 当用户单击按钮 A 时,它会打开 50 个 JFrame。
- 当用户单击按钮 B 时,它会处理通过单击按钮 A 显示的所有 JFrame。
I find that the memory does not decrease after clicking button B. I determined this using the Task Manager, ctrl+alt+del in Windows, and checking the memory usage of "java".
是的,没办法,无法解决这个问题(不仅在Java PL中),
1)真的不要创造很多顶级容器在 Runtime/Fly 上,因为它们从未最终确定,并且直到当前 JVM 实例退出,并且这些对象从未被 GC 处理,仅它们的Grapfics2D
2) myContainer#dispose()
当前 JVM 实例的运行时相同myContainer#setVisible(false)
与 JVM 可用和已用内存相关
3)只创建很少的Top-Level Containers
(同时显示的最大数量),重复使用它,但放在那里JPanel作为 1.stJComponent
并打电话myPanel#removeAll()
,否则你将删除RootPane从你的容器中,只有边界:-)是半透明的
4) 通过调用 GC 可以部分减少 JVM 使用的内存,但只是返回量Graphics2D
and Garbage
不会立即起作用,
5) more here有用的信息here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)