作者非常喜欢AIR,并且认为AIR是一个非常好的平台,但AIR有个缺陷,也为它带来了不好的名声,就是它并没有在CPU的使用效率上做出改善。

在 MAC系统上做这样的尝试:打开Flash CS4,新建一个空的FLA文件,并且将它发布成AIR应用。安装并运行它,然后打开性能管理器,在我的新的MacBook Pro电脑上,这个空的AIR应用使用了接近4%的CPU,而且,它只是在后台运行,没有做任何操作。

看看现在主流的比较受欢迎的AIR应用:比如Twitter应用,新闻应用,通知应用,以及综合应用。打开其中的一些应用,你 可能需要花费大部分的CPU在它们身上,而且这是在它们没有任何操作的情况下。作者通常会同时打开10-20个应用,如果这些应用都是AIR就是制作的, 那么可能将会占用你一半的CPU。

理想情况下,一个应用在空闲状态下CPU的使用率应该是0%,可接受的值是小于1%。AIR必须在跨平台的特性中解决这一个问题。

这个问题目前不影响Windows。作者并没有在Linux中测试。

值 得注意的是,这个问题并不仅限于AIR,它似乎是播放器自身的问题。让我们尝试相同的测试,在播放器或浏览器中运行一个空的SWF文件,你会发现相同的 CUP占用率。作者认为这也是为什么Flash CS4在Mac上占用如此之多的CPU的原因-至少有两个Flash Player的实例在运行,一个是核心,一个是面板。

作者联系了Adobe的开发团队,他们承认这一问题并积极努力解决这个问题。作者写这篇文章的初衷是:

  1. 希望人们认识到这个问题,并通过这种认识促进Adobe积极解决这个问题,如果您觉得这个问题非常重要,请帮助传播它,并将它登记到Adobe的缺陷任务管理系统。
  2. 这个问题可以解释给客户,让他们也对这个问题有清醒的认识。
  3. 作者建立了一个简单的类,他会在您的应用处于后台运行时,暂时降低它的帧速,并在它恢复时,恢复它的帧速。减少帧速是作者发现的目前最有效的提高性能的解决方案。这个类使用也很简单:








    1. (          2          );         
    2. enabled =          false;         
    3. true;




    你可以从这里下载这个类:http://www.gskinner.com/blog/assets/FramerateThrottler.zip