套件 | flash.sampler |
類別 | public final class NewObjectSample |
繼承 | NewObjectSample Sample Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.115.0 |
getSamples()
串流中建立的物件。僅限 Flash Player 除錯程式版本。
相關 API 元素
公用屬性
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
object : * [唯讀]
NewObjectSample 物件 (如果它仍然存在)。 | NewObjectSample | ||
size : Number [唯讀]
NewObjectSample 物件大小。 | NewObjectSample |
公用常數
常數 | 定義自 | ||
---|---|---|---|
stack : Array
包含指定期間內 Flash Player 所執行方法的相關資訊。 | Sample | ||
time : Number
定義 Sample 實體持續時間的毫秒數。 | Sample | ||
type : Class
Class 物件,對應於 getSamples() 串流中建立的物件。 | NewObjectSample |
屬性詳細資訊
object | 屬性 |
size | 屬性 |
常數詳細資訊
type | 常數 |
public const type:Class
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.115.0 |
Class 物件,對應於 getSamples()
串流中建立的物件。僅限 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:47 PM Z