13

我在 javaFx 中构建的 java 应用程序遇到问题。它仅消耗 2-3% 的 cpu 使用率和大约 50 到 80 MB 的 Windows 内存。但在 mac 中,相同的应用程序最初从 50 MB 内存开始,并不断增加到 1 GB,并使用超过 90% 的 CPU 使用率。我在检查 Mac 任务管理器时发现了此信息。当我使用 java 探查器查找内存泄漏时,探查器显示的内存使用情况与窗口相同(不超过 100 MB)。

我对 Mac 中的这种行为感到困惑。

以前有没有人遇到过这个问题,或者我的应用程序做错了什么?

4

1 回答 1

1

很多事情都是可能的,但我怀疑这一点:根据内存大小和 cpu 数量,jvm 可能会在服务器模式下运行,这会导致内存管理不同。使用 -server 选项强制它始终为服务器模式并再次比较。

还可以进行堆转储 (jmap -dump) 来查看什么占用了这么多内存,并使用堆栈跟踪 (kill -3) 来查看什么占用了这么多 cpu。

于 2013-07-23T22:47:33.673 回答