2

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

4

3 回答 3

1

您可以简单地限制 JVM 内存设置 jdk 的使用,或对应用程序代码进行重构,尝试减少内存分配,例如在其他重构方法之间使用 Singleton 重用对象实例

于 2013-10-02T16:40:34.530 回答
1

您可以使用许多 GC 标志来指定围绕 JVM 的分配,但老实说,Java 的最佳优化来自首先优化您的代码。

至于要查看哪些标志:

  • -Xmx1024M:

    将 jvm 最大堆大小设置为 1024 兆字节。您可以更改分配给进程的 RAM 量。

  • -XX:+AgressiveOpts

    一个 jvm 超级选项。这会激活其他 jvm 标志。解释它们都需要很多时间,但基本上它启用了优化并增加了缓存大小。我相信某处有一篇旧帖子......啊哈:旧帖子

于 2013-10-02T16:39:29.033 回答
-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());
于 2013-10-02T16:39:11.873 回答