我使用 Mac OS 已经快 3 年了。几个月前我注意到,而且随着时间的推移,越来越让我恼火的是,任何 Adobe Flash 应用程序、内容或网站上的广告都占用了大量的 CPU。
我想:这很合理。这是一个孤立的问题,与 Adobe 为 OS X 实现 Flash 的方式有关。我错了,因为最近使用 Java3D 编写应用程序时也发生了同样的事情。在 Windows 上,我的应用程序的 CPU 使用率在 1% 到 2% 之间,而在 Mac 上,仅启动 Java3D 程序(不进行任何计算)就会导致 60% 以上的 CPU 使用率。
有人知道为什么会发生这种情况吗?我朋友的新 MacBook Pro 也出现了同样的情况。我真的很喜欢 Mac,但随着越来越多的此类事情出现,我的“狂热粉丝”精神也逐渐消退……
PS 我确实尝试修复磁盘权限。
这不仅仅是视频。就像在 Safari 上一样,在 Firefox 上打开暗黑破坏神 3 角色(http://us.blizzard.com/diablo3/characters/) 导致我的 %CPU 使用率(根据活动监视器)超过 100%。下面附有 Console.app 列表(安装 Flash v10.1 B2 后,打开此网站即可获得)。如果您想测试 Java3D,可以转到我的上一个作业(http://personal.cis.strath.ac.uk/~ajonkisz/Tree/tree.html)。Safari 和 Firefox 上的表现也一样,CPU 使用率超过 100%。
如果只有我一个人遇到这个问题,请告诉我,这可能是异常。
答案1
众所周知,Adobe 多年来一直忽视 Mac 上 Flash 的主要性能问题。
答案2
答案3
Adobe 推出了 Flash 测试版 v10.1 B2,该版本显著提高了 Mac Flash 客户端的性能,尤其是视频性能。在此测试版之前,在 Flash 中观看高清电影比在 VMWare Fusion Windows VM 中观看 Flash 高清电影消耗更多的资源!
另外,请确保问题确实出在 Flash 或 Java 上,有一些流行的 Mac 应用程序,例如 Transmission bittorrent 客户端,已知会导致 Snow Leopard 出现性能问题。
进入应用程序->实用程序->Console.app 并查看系统控制台和系统日志。这应该可以帮助您隔离遇到的性能问题。
答案4
值得注意的是,Mac 和 Windows 报告多核使用情况的方式不同。如果某个进程/应用程序占用了四核 Mac 的最大资源,top
则活动监视器会将其报告为 400%。总体使用情况(用户、系统、空闲)总计为 100%。在 Windows 上,两者都是 100%。总的来说,我更喜欢 Mac 的方式,因为这样可以更详细地了解情况。
这无法解释 2% 和 60% 之间的差异,除非您选择即将推出的 24 核系统之一,但这确实是一个问题。(在 24 核 Windows 机器上,已固定核心的“失控”进程将占用“4%”——这似乎不对。)
更重要的是,如果你有一个多核系统,即使你的某个应用程序占用了 CPU,也无所谓。我选择在四核电脑上运行 Vista 的原因之一是,“TrustedInstaller.exe”——一个病毒的绝妙名字——经常会决定它需要思考真的很难约五分钟。
性能差异可能部分归因于显卡支持。最新的 Flash 测试版刚刚为 Windows 上的视频添加了硬件加速。如前所述,Mac 上的 Flash 情况全面恶化。由于不了解内部原理,动画似乎是以一种幼稚的“忙循环”方式实现的,而不是合理的中断。(没有人真正欣赏 Flash 上的每秒 240 帧。)
Java 确实需要更多时间来启动——它有运行时和许多库来让程序员的工作变得“简单”和“一致”——但一旦启动并运行,其性能应该与本机代码差不多。内存占用可能更大,特别是如果您只运行一个 Java 应用程序,并且您没有意识到跨多个进程共享运行时/库代码会节省内存。对于 Java 3D,您可以尝试检查支持的加速功能[JNLP 链接]。我不做 3D,因此不清楚不受支持的功能是否会被忽略或模拟。
最后,“修复权限”是巫术。