Flex Adobe AIR和Flash Player的CPU使用率

地址:http://www.gskinner.com/blog/archives/2009/05/idle_cpu_usage.html

作者非常喜欢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. FramerateThrottler.initialize ( 2 );
  2. FramerateThrottler. enabled = false;
  3. FramerateThrottler.onlyThrottleOnMac = true;

 

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

 

转自:http://hi.baidu.com/xukunwzq/blog/item/2cf75b085d4af9a32eddd4c6.html

你可能感兴趣的:(Flex,测试,Flash,Adobe,AIR,跨平台)