【问题标题】:PNG's In Mac on Java cause massive CPU usageJava 上的 PNG 在 Mac 中会导致大量 CPU 使用
【发布时间】:2011-02-17 14:37:35
【问题描述】:

嘿,这个问题我已经有一段时间了,我希望有人能提供帮助。

我在 Mac OSX 1.6.3 上使用 Java 制作小游戏,如果我使用 PNG 作为图像格式,Java 的 CPU 使用率会飙升至 50%(在非常小的 2D 游戏中)。但是,如果我使用 GIF 作为格式,Java 的 CPU 使用率会保持在 10%,这是合理的。

是什么导致了这个问题?它出现在我使用 PNG 开发的每款游戏中,所以我总是切换到 GIF。

现在的问题是我需要为它的可变 alpha 属性使用 PNG,而不仅仅是简单的透明度。这在使用 GIF 时不可用。

Java SE 6 和以前的版本中存在此问题。我使用的是 2009 年初的 Mac Book Pro 15"。

在运行相同游戏的 Windows PC 上不会出现此问题。由于 Java 在 Windows PC(我尝试过 XP、Vista 和 7)上使用 PNG 导致的 CPU 使用率始终保持在 ~10% 左右。

任何帮助将不胜感激。 谢谢:)

【问题讨论】:

    标签: java macos png cpu-usage


    【解决方案1】:

    透明度可能是问题的根源,因为它是一项相当昂贵的功能。我的猜测是 Mac 上的 Java2D 不使用硬件加速,而在 Windows 上却使用了。

    您是否正在运行 MacOS 附带的 JRE?

    【讨论】:

    • 是的,Mac 发布了他们自己的 JRE 版本,我正在运行最新版本。我可以尝试使用 -Dsun.java2d.opengl=true 来启用 Suns 的 opengl 实现,但我不确定它的效果如何。谢谢
    • @alexganose - "...但我不确定这有多有效"。试试看。
    • 没有明显差异。真的坚持在这里做什么。尽管我与之交谈过的其他人也遇到了同样的问题,但我找不到任何人的更多信息。
    • @alexganose:您可以尝试在两个平台上对应用程序进行分析,看看它在哪里花费了时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2012-04-19
    相关资源
    最近更新 更多