我在java中开发了一个独立的应用程序,但它使用了70%的内存使用率,这使得系统挂起。是否有解决方案来减少java应用程序的内存使用量。请帮忙。
答案 0 :(得分:1)
您可以简单地限制JVM内存设置jdk的使用,或者执行应用程序代码的重构,尝试减少内存分配,例如:在其他重构方法之间使用Singleton重用对象实例
答案 1 :(得分:0)
可以使用许多GC标志来指定JVM周围的分配,但老实说,最好的java优化来自优化代码。
至于要查看的标志:
-Xmx1024M:
将jvm最大堆大小设置为1024 MB。您可以更改分配给流程的RAM量。
-XX:+ AgressiveOpts
一个jvm超级选项。这会激活其他jvm标志。要解释它们都需要花费很多时间,但基本上它启用了优化并增加了缓存大小。我相信在某个地方有一个旧帖子......啊哈:Old Post
答案 2 :(得分:-2)
确保清理资源,一旦不再需要就设置variableName = null;
。这将使其成为垃圾收集的最佳候选者。
您也可以使用System.gc();
但垃圾收集通常是自动完成的。手动调用它会消耗大量资源,应该是最后一个选项。
另一个可能的内存泄漏问题:如果你连接Strings
。如果需要连接字符串,请使用最佳StringBuilder
。
注意:您可以使用untime方法监视内存使用情况。
Tmp tmp=new Tmp();
Runtime runtime = Runtime.getRuntime();
int procs = runtime.availableProcessors();
String max = tmp.adjust(runtime.maxMemory());
String total = tmp.adjust(runtime.totalMemory());
String used = tmp.adjust(runtime.totalMemory() - runtime.freeMemory());
String free = tmp.adjust(runtime.freeMemory());