测试

2009/02/27 05:33 by civet | |
Vector.<Number> vs Vector.<Object>


package {
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.utils.getTimer;
  import flash.system.System;
  
  public class SpeedTest extends Sprite {
    
    public function SpeedTest() {
      run();
    }
    
    public function run():void {
      //Store 2 min. Sound Samples(44100)
      var t:int;
      var i:uint;
      var len:uint;
      var mem:int = System.totalMemory;
      
      trace("1. without new Number()");
      len = 120 * 44100 * 2;
      t = getTimer();
      var v1:Vector.<Number> = new Vector.<Number>(len, true);
      trace(getTimer()-t + "ms");
      trace("v[0] = "+ v1[0]);
      trace("memory used: " + (System.totalMemory - mem) + "K");
      mem = System.totalMemory;
      
      
      trace("\n2. without new SampleUnit()");
      len = 120 * 44100;
      t = getTimer();
      var v2:Vector.<SampleUnit> = new Vector.<SampleUnit>(len, true);
      trace(getTimer()-t + "ms");
      trace("v[0] = "+ v2[0]);
      trace("memory used: " + (System.totalMemory - mem) + "K");
      mem = System.totalMemory;
      
      
      trace("\n3. new Number()");
      len = 120 * 44100 * 2;
      t = getTimer();
      var v3:Vector.<Number> = new Vector.<Number>(len, true);
      for(i=0; i<len; i++) {
        v3[i] = new Number();
      }
      trace(getTimer()-t + "ms");
      trace("v[0] = "+ v3[0]);
      trace("memory used: " + (System.totalMemory - mem) + "K");
      mem = System.totalMemory;
      
      
      trace("\n4. new SampleUnit()");
      len = 120 * 44100;
      t = getTimer();
      var v4:Vector.<SampleUnit> = new Vector.<SampleUnit>(len, true);
      for(i=0; i<len; i++) {
        v4[i] = new SampleUnit();
      }
      trace(getTimer()-t + "ms");
      trace("v[0] = "+ v4[0]);
      trace("memory used: " + (System.totalMemory - mem) + "K");
      mem = System.totalMemory;
    }
  }
}



SampleUnit.as
package {
  public class SampleUnit {
    private var left:Number=0;
    private var right:Number=0;
    
    public function SampleUnit() {}
  }
}




CPU: Pentium4 2.66GHz, Memory: 1GB, Software: Flash CS4 > Test Movie


1. without new Number()
89ms
v[0] = 0
memory used: 84672512K

2. without new SampleUnit()
2ms
v[0] = null
memory used: 21180416K

3. new Number()
1313ms
v[0] = 0
memory used: 84672512K

4. new SampleUnit()
6492ms
v[0] = [object SampleUnit]
memory used: 305664000K




-------------------------------------
A solution of Sound Mixing
http://www.kaourantin.net/2008/10/audio-mixing-with-pixel-bender.html
默认分类 | 评论(0) | 引用(0) | 阅读(54)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]