1// https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/sampler/Sample.html 2package 3{ 4 import flash.sampler.* 5 import flash.system.* 6 import flash.utils.* 7 import flash.display.Sprite 8 public class sampleTypes extends Sprite 9 { 10 var b:Boolean = true 11 public function sampleTypes() { 12 flash.sampler.startSampling(); 13 for(var i:int=0;i<10000;i++) 14 new Object(); 15 16 var cpuSamples:Array=[]; 17 var newSamples:Array=[]; 18 var delSamples:Array=[]; 19 var ids:Array=[] 20 21 var lastTime:Number=0; 22 for each(var s:Sample in getSamples()) { 23 24 assert(s.time > 0); // positive 25 assert(Math.floor(s.time) == s.time, s.time); // integral 26 assert(s.time >= lastTime, s.time + ":" + lastTime); // ascending 27 assert(s.stack == null || s.stack is Array) 28 if(s.stack) { 29 assert(s.stack[0] is StackFrame); 30 assert(s.stack[0].name is String); 31 } 32 33 if(s is NewObjectSample) { 34 var nos = NewObjectSample(s); 35 assert(s.id > 0, s.id); 36 assert(s.type is Class, getQualifiedClassName(s.type)); 37 newSamples.push(s); 38 ids[s.id] = "got one"; 39 } else if(s is DeleteObjectSample) { 40 var dos = DeleteObjectSample(s); 41 delSamples.push(s); 42 assert(ids[dos.id] == "got one"); 43 } else if(s is Sample) 44 cpuSamples.push(s); 45 else { 46 assert(false); 47 } 48 lastTime = s.time; 49 } 50 51 trace(b) 52 trace(newSamples.length > 0) 53 trace(cpuSamples.length > 0) 54 trace(delSamples.length > 0) 55 56 } 57 58 private function assert(e:Boolean, mess:String=null):void { 59 b = e && b; 60 if(true && !e) { 61 if(mess) trace(mess); 62 trace(new Error().getStackTrace()); 63 } 64 } 65 } 66} 67