减少Java应用程序的CPU使用率

时间:2013-10-02 16:33:41

标签: java

我在java中开发了一个独立的应用程序,但它使用了70%的内存使用率,这使得系统挂起。是否有解决方案来减少java应用程序的内存使用量。请帮忙。

3 个答案:

答案 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());