패키지 | flash.sampler |
클래스 | public class Sample |
상속 | Sample Object |
하위 클래스 | DeleteObjectSample, NewObjectSample |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9.0.115.0 |
관련 API 요소
공용 속성
공용 메서드
공용 상수
상수 | 정의 주체 | ||
---|---|---|---|
stack : Array
지정된 기간 동안 Flash Player가 실행한 메서드에 대한 정보를 포함합니다. | Sample | ||
time : Number
Sample 인스턴스의 지속 기간을 정의하는 마이크로초입니다. | Sample |
상수 세부 정보
stack | 상수 |
public const stack:Array
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9.0.115.0 |
지정된 기간 동안 Flash Player가 실행한 메서드에 대한 정보를 포함합니다. 스택 추적의 형식은 Flash Player 디버거 버전의 예외 대화 상자에 표시되는 내용과 비슷합니다. Flash Player 디버거 버전 전용입니다.
time | 상수 |
public const time:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9.0.115.0 |
Sample 인스턴스의 지속 기간을 정의하는 마이크로초입니다. Flash Player 디버거 버전 전용입니다.
예제 예제 사용 방법
SampleTypesExample.as
다음은 Sample 객체
s
의 stack
및 time
속성을 사용하여 메모리 샘플을 수집하는 예제입니다. 샘플에는 NewObjectSample 객체(newSamples
배열), DeleteObjectSample 객체(delSamples
배열) 및 CPU 메모리 샘플 객체(cpuSamples
배열)가 포함되어 있습니다. 메모리 프로파일러를 사용하려면 Flash Player 디버거 버전 9.0.115.0 이상이 설치되어 있어야 합니다.
package { import flash.sampler.* import flash.system.* import flash.utils.* import flash.display.Sprite public class sampleTypes extends Sprite { var b:Boolean = true public function sampleTypes() { flash.sampler.startSampling(); for(var i:int=0;i<10000;i++) new Object(); var cpuSamples:Array=[]; var newSamples:Array=[]; var delSamples:Array=[]; var ids:Array=[] var lastTime:Number=0; for each(var s:Sample in getSamples()) { assert(s.time > 0); // positive assert(Math.floor(s.time) == s.time, s.time); // integral assert(s.time >= lastTime, s.time + ":" + lastTime); // ascending assert(s.stack == null || s.stack is Array) if(s.stack) { assert(s.stack[0] is StackFrame); assert(s.stack[0].name is String); } if(s is NewObjectSample) { var nos = NewObjectSample(s); assert(s.id > 0, s.id); assert(s.type is Class, getQualifiedClassName(s.type)); newSamples.push(s); ids[s.id] = "got one"; } else if(s is DeleteObjectSample) { var dos = DeleteObjectSample(s); delSamples.push(s); assert(ids[dos.id] == "got one"); } else if(s is Sample) cpuSamples.push(s); else { assert(false); } lastTime = s.time; } trace(b) trace(newSamples.length > 0) trace(cpuSamples.length > 0) trace(delSamples.length > 0) } private function assert(e:Boolean, mess:String=null):void { b = e && b; if(true && !e) { if(mess) trace(mess); trace(new Error().getStackTrace()); } } } }
Tue Jun 12 2018, 03:17 PM Z