0

我有一种情况,Java Applet 在多次打开后挂起。这只发生在 RAM 较低的系统上,这使我相信可能存在内存泄漏,或者分配给堆的内存不足。

如何测试小程序的内存泄漏?像JProbe这样的东西会起作用吗?

4

1 回答 1

0

我不认为特定工作站上的低内存是一个问题。

如果没有另外指定(带-Xmx设置),Java 小程序64MB在开始时获取内存。JVM在一开始就从系统中保留了这个数量的 RAM ,因此如果系统可用的内存较少,则 JVM(以及 Applet)甚至都不会启动。

但如果它启动,则保证所有配置的内存都可用。因此,如果您的 Applet 仍然缺少内存,则有两种可能:

  1. 默认设置 (64MB) 是低 - 配置您的小程序以获得更多 RAM。
  2. 您没有正确释放资源,并泄漏内存。查看您的小程序的生命周期方法,并检查您是否正在按应有的方式释放资源。

另外,您说最后,您的小程序挂起。要查看发生了什么,请将一些日志记录添加到生命周期方法启用 Java 控制台,并查找异常。

于 2012-06-20T15:01:01.110 回答