AIR 2.7이 "4x faster"라는 멘트로 출시됐다.
여기에 내가 미심쩍게 본 부분은 바로 뒤에 붙은 in CPU mode 라는 단어였다.
그래서 퍼포먼스 테스트를 진행해보았다.
아마 예상을 하기로는 이렇게 예상할 것이다.
AIR 2.7 GPU > AIR 2.7 CPU >= AIR 2.6 GPU > AIR 2.6 CPU
결과는 좀 당황스럽게 나왔다 -_-a
1. AIR 2.6 CPU Mode
- 9~11 fps
2. AIR 2.6 GPU Mode
- 16~19 fps
3. AIR 2.7 CPU Mode
- 20~24 fps
4. AIR 2.7 GPU Mode
- 18~22 fps
직접 아이폰4에 넣고 돌려본 결과
AIR 2.7 CPU > AIR 2.7 GPU >= AIR 2.6 GPU > AIR 2.6 CPU
순서대로 나왔다.
AIR 2.7 CPU 모드가 GPU 모드보다 약 2~3 fps 더 나왔던 것이다.
-_-a
뭐 이런 결과가...
코드는 아래와 같고 모두 동일한 코드로 실험했다.
package
{
import com.sundaytoz.utils.Stats;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
[SWF ( widthPercent="100%", heightPercent="100%", frameRate="60" ) ]
public class Perf7 extends Sprite
{
public function Perf7()
{
// support autoOrients
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
this.stage.addChild( new Stats );
this.createImages();
}
private function createImages(): void
{
var image: Image;
var i: int = 500;
while( i-- )
{
image = new Image;
image.x = Math.random() * this.stage.stageWidth;
image.y = Math.random() * this.stage.stageHeight;
this.addChild( image );
}
}
}
} |
|
package
{
import com.greensock.utils.EnterFrame;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Matrix;
[Embed ( source="../png/image.png" ) ]
public class Image extends Bitmap
{
static private const SPEED: int = 3;
public function Image()
{
EnterFrame.manager.add( move );
this.cacheAsBitmapMatrix = new Matrix;
}
private var speedX: int = SPEED;
private var speedY: int = SPEED;
private function move(): void
{
this.x += this.speedX;
this.y += this.speedY;
if( this.x < 0 )
this.speedX = SPEED;
if( this.x + this.width > this.stage.stageWidth )
this.speedX = -SPEED;
if( this.y < 0 )
this.speedY = SPEED;
if( this.y + this.height > this.stage.stageHeight )
this.speedY = -SPEED;
}
}
} |
|
코드는 별 다를게 없다...
어떻게 받아들여야할지 좀 난감하고
더 많은 테스트가 필요할 것으로 보인다 -_-a
p.s) 아오.... 이 unpredictable 한 어도비 같으니....