【问题标题】:Java Issue: Memory and CPU usage in MAC OSJava 问题:MAC OS 中的内存和 CPU 使用率
【发布时间】:2013-05-17 06:10:50
【问题描述】:

我正在为 MAC 和 Windows 开发一个 javaFx 应用程序,我发现与 Windows 相比,该应用程序在 MAC 中使用了非常大的内存和 cpu 使用率。

当我在 Windows 任务管理器中看到我的应用程序的活动时,它显示平均 80MB 内存和 1-2% 的 CPU 的使用情况,达到最大值 150MB 和 12-15% 的 CPU。另一方面,在 MAC Activity Monitor 中,相同的应用程序在启动时显示 150MB 和 12-15% 的 CPU,并持续增加超过 1GB 和 90% 的 CPU。

这是我在 JavaFX 应用程序中发现的一个非常奇怪的问题。

我什至对简单的 java 应用程序进行了测试,发现 MAC 和 Windows 中的内存和 CPU 有类似的行为。

为什么 Java 在 MAC 中使用更多的内存和 CPU?有什么理由要解决这个问题吗?

【问题讨论】:

  • 不同平台运行哪些Java/JavaFX版本?
  • Java1.7 和 JavaFx2.2
  • 如果你在 JDK 下运行 mac 版本,你可以运行 visualvm。在左侧,您应该看到运行您的应用程序的 java 进程。如果您进行堆转储 (huhuhuh),您可以调查哪些对象正在使用内存。这是非常重要的 Java 技能的绝佳练习。
  • @AndyTill,我已经尝试过您的建议,MAC 中的 VisaulVM 显示内存和 CPU 使用率较低,几乎等于 Winodws 中的 VisaulVM。但在 MAC Activity Monitor 中,这确实是一种奇怪的行为。
  • 这很奇怪,它是用 hello world 类型的程序做的还是只是 javafx?

标签: macos memory-management javafx-2 java-7 cpu-usage


【解决方案1】:

当 Java 推出最初不受支持的新版本时,由于安全漏洞(网守阻止它/或不工作),我看到了很多问题

如果这有助于使其支持更多,这是链接,

Old Post

我会说 MAC 的安全功能会在一段时间内成为 bug,因为它明确不更新任何插件,所以检查 JAVA 的版本,如果工作正常,插件.. post 旧的我不知道哪个可能需要插件,但这是插件无法正常工作的主要问题..

也检查一下,如果您的系统正在访问以前存在的 JAVA 6,请删除以避免相同的参考 Discussion on apple

JAVAFX和JDK必须安装在同一目录结构Oracle MAC FAQ问题2

我不是MAC的普通用户,因为不需要太多,(偶尔)..

但请务必跟踪版本和更新。 :)

我希望这会解决..

我的主要关注点是旧的 java 6 也有请删除相同的目录..

【讨论】:

  • 感谢您的回答和cmets。我已经用 java1.7u09、Java1.7u10 和 Java1.7u21 试过这个。它们在内存管理方面的行为都相同(内存不断增加,并且不释放内存活动监视器)。我也尝试过 Java8 的早期版本,我发现 Java8 在内存管理方面做得很好(将内存增加到一定水平并释放内存)。但是 Java 8 的 JavaFx 很少有图形问题,我不想使用 java8 早期版本。
  • 如果看门人阻塞进程,它也可能阻塞进程子部分,所以如果可能请下载最新版本并再试一次..如果这可以解决问题,请参阅常见问题页面java.com/en/download/faq/java_mac.xml 这表示不支持以前的版本,并且已阻止.. 或使用 ctrl 单击以管理员身份启动程序,然后再次测试。如果有任何变化!!,谢谢你的 cmets..
猜你喜欢
  • 2015-01-04
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
  • 2011-09-11
  • 2022-07-26
  • 1970-01-01
相关资源
最近更新 更多