flash.samplerStackFrame Die StackFrame-Klasse ermöglicht den Zugriff auf die Eigenschaften eines Datenblocks, der eine Funktion enthält.Object Die StackFrame-Klasse ermöglicht den Zugriff auf die Eigenschaften eines Datenblocks, der eine Funktion enthält. Nur für Flash Player-Debugger-Version. toString Konvertiert den StackFrame in einen String seiner Eigenschaften.Ein String, der die name-Eigenschaft enthält und optional die Eigenschaften file und line (falls Debugging für eine SWF-Datei ausgeführt wird) des StackFrame-Objekts. Nur für Flash Player-Debugger-Version. String Konvertiert den StackFrame in einen String seiner Eigenschaften. file Der Dateiname der SWF-Datei, für die ein Debugging ausgeführt wird.String Der Dateiname der SWF-Datei, für die ein Debugging ausgeführt wird. Nur für Flash Player-Debugger-Version. line Die Zeilennummer für die Funktion in der SWF-Datei, für ein Debugging ausgeführt wird.uint Die Zeilennummer für die Funktion in der SWF-Datei, für ein Debugging ausgeführt wird. Nur für Flash Player-Debugger-Version. name Der Funktionsname im Stack-Frame.String Der Funktionsname im Stack-Frame. Nur für Flash Player-Debugger-Version. scriptID Der Bezeichner für die Skriptfunktion in der Anwendung, für die ein Profil erstellt wird.Number Der Bezeichner für die Skriptfunktion in der Anwendung, für die ein Profil erstellt wird. NewObjectSample Die NewObjectSample-Klasse repräsentiert Objekte, die innerhalb eines getSamples()-Streams erstellt werden.flash.sampler:Sample Die NewObjectSample-Klasse repräsentiert Objekte, die innerhalb eines getSamples()-Streams erstellt werden. Nur für Flash Player-Debugger-Version. Im folgenden Beispiel werden mit den stack- und time-Eigenschaft eines Sample-Objekts s Speicher-Samples gesammelt. Die Samples enthalten NewObjectSample-Objekte (das newSamples-Array), DeleteObjectSample-Objekte (das delSamples-Array) und CPU-Speicher-Sample-Objekte (das cpuSamples-Array). Um den Speicherprofiler zu verwenden, muss die Flash Player-Debugger-Version 9.0.115.0 oder höher installiert sein. 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()); } } } } flash.sampler.getSamples()type Das Class-Objekt, das dem Objekt entspricht, das innerhalb eines getSamples()-Streams erstellt wurde.Class Das Class-Objekt, das dem Objekt entspricht, das innerhalb eines getSamples()-Streams erstellt wurde. Nur für Flash Player-Debugger-Version. object Das NewObjectSample-Objekt, falls es immer noch vorhanden ist. Das NewObjectSample-Objekt, falls es immer noch vorhanden ist. Wenn das Objekt vom Speichermanagement gelöscht wurde (Garbagekollektor), ist diese Eigenschaft undefiniert und ein entsprechendes DeleteObjectSample ist vorhanden. Nur für Flash Player-Debugger-Version. flash.sampler.DeleteObjectSamplesize Die Größe des NewObjectSample-Objekts.Number Die Größe des NewObjectSample-Objekts. Wenn das Objekt vom Speichermanagement gelöscht wurde (Garbage Collection), ist diese Eigenschaft undefiniert und ein entsprechendes DeleteObjectSample ist vorhanden. Nur für die Debugger-Version von Flash Player. flash.sampler.DeleteObjectSampleclearSamples Löscht den aktuellen Satz von Sample-Objekten. Löscht den aktuellen Satz von Sample-Objekten. Diese Methode wird normalerweise aufgerufen, nachdem getSamples() aufgerufen wurde und die Sample-Objekte durchlaufen hat. Nur für Flash Player-Debugger-Version. getSamples()getGetterInvocationCount Gibt die Anzahl der Ausführungen einer get-Funktion zurück.Die Anzahl der Ausführungen einer get-Methode. NumberobjObjectEine Methodeninstanz oder eine Klasse. qnameQNameWenn qname den Wert undefined aufweist, wird die Anzahl der Iterationen der Konstruktorfunktion zurückgegeben. Gibt die Anzahl der Ausführungen einer get-Funktion zurück. Überprüfen Sie mit isGetterSetter(), dass Sie über eine get/set-Funktion verfügen, bevor Sie getGetterInvocationCount() verwenden. Nur für Flash Player-Debugger-Version. isGetterSetter()getInvocationCount()getInvocationCount Gibt die Anzahl der Ausführungen der Methode zurück.Die Anzahl der Ausführungen der Methode. NumberobjObjectEine Methodeninstanz oder eine Klasse. Wenn keine Methodeninstanz verfügbar ist, kann die Anzahl der Aufrufe von Instanzfunktionen mithilfe einer Klasse abgerufen werden. Wenn obj den Wert undefined hat, gibt diese Methode die Anzahl der für das Paket gültigen Funktion zurück, die von qname benannt wird. qnameQNameWenn qname den Wert undefined aufweist, wird die Anzahl der Iterationen der Konstruktorfunktion zurückgegeben. Gibt die Anzahl der Ausführungen der Methode zurück. Wenn der obj-Parameter eine Klasse ist und der qname-Parameter den Wert undefined hat, gibt diese Methode die Anzahl der Iterationen der Konstruktorfunktion zurück. Nur für Flash Player-Debugger-Version. package { public function exec3() {} import flash.sampler.*; import flash.system.*; import flash.display.Sprite; import flash.utils.*; public class getInvocationCountTest extends Sprite { public function getInvocationCountTest() { for(var i:int=0;i<10;i++) exec(); for(var i:int=0;i<10;i++) exec2(); for(var i:int=0;i<10;i++) exec3(); // get exec QName var execName:QName; var name:QName; var fooName:QName; for each(name in getMemberNames(this)) { if(name.localName == "exec") execName = name; if(name.localName == "foo") fooName = name; } var exec2Name:QName; for each(name in getMemberNames(getInvocationCountTest)) { if(name.localName == "exec2") exec2Name = name; } // execute get/set foo = "bar"; trace(isGetterSetter(this, fooName)); trace(getSetterInvocationCount(this, fooName) == 1); trace(getGetterInvocationCount(this, fooName) == 0); foo; trace(getSetterInvocationCount(getInvocationCountTest, fooName) == 1); trace(getGetterInvocationCount(getInvocationCountTest, fooName) == 1); trace(getInvocationCount(this, execName) == 10); trace(getInvocationCount(getInvocationCountTest, execName) == 10); trace(getInvocationCount(getInvocationCountTest, exec2Name) == 10); trace(getInvocationCount(getInvocationCountTest, undefined) == 1); getTimer(); getTimer(); trace(getInvocationCount(undefined, new QName("", "trace")) == 9); trace(getInvocationCount(undefined, new QName("flash.utils", "getTimer")) == 2); trace(getInvocationCount(undefined, new QName("", "exec3")) == 10); } private function exec():void {} private static function exec2():void {} private function get foo():String { return "fo"; } private function set foo(s:String) { } } } getLexicalScopes Gibt den lexikalischen Umfang einer Funktion an, sodass erfasste scope-Objekte (einschließlich activation-Objekte und mit Umfang) vom Profiler als von der Function-Instanz zurückgehalten erkannt werden.Ein Array, das alle Elemente des lexikalischen Umfangs enthält ArrayobjFunctionEine Funktion Gibt den lexikalischen Umfang einer Funktion an, sodass erfasste scope-Objekte (einschließlich activation-Objekte und mit Umfang) vom Profiler als von der Function-Instanz zurückgehalten erkannt werden. getMasterString Gibt den Master-String zurück, von dem dieser String abhängig ist, oder null, wenn dieser String von keinem anderen String abhängig ist.Der String, von dem der übergebene String abhängig ist, oder null, wenn der übergebene String von keinem anderen String abhängig ist StringstrStringEin String Gibt den Master-String zurück, von dem dieser String abhängig ist, oder null, wenn dieser String von keinem anderen String abhängig ist. Wenn Sie zum Beispiel String.substr() aufrufen, wird der zurückgegebene String aus Effizienzgründen oft nur als Verweis in den Originalstring implementiert. Im normalen Einsatz ist dies ein Implementierungsdetail, das vom Benutzer nicht bemerkt wird. Es kann jedoch verwirrend sein, wenn ein Profiler zur Analyse der Speichernutzung Ihres Programms verwendet wird, da der String möglicherweise laut Anzeige weniger Speicher benötigt als tatsächlich für den Wert des Strings erforderlich. Des Weiteren kann ein String allein deshalb im Speicher verbleiben, weil er als Master für andere Strings fungiert. Mit getMasterString() können Profiler dem Benutzer ein genaues Diagramm der Stringabhängigkeiten anzeigen. getMemberNames Gibt ein Objekt zurück, das alle Mitglieder eines angegebenen Objekts einschließlich privater Mitglieder enthält.Ein Objekt, das Sie mit einer for each..in-Schleife durchlaufen müssen, um die QNames für jede Eigenschaft zu erhalten. ObjectoObjectDas zu analysierende Objekt. instanceNamesBooleanfalseWenn das Objekt eine Klasse ist und instanceNames den Wert „true“ hat, melden Sie anstatt der Namen der Klassenmitglieder die Instanznamen, als ob das Objekt eine Instanz der Klasse wäre. Gibt ein Objekt zurück, das alle Mitglieder eines angegebenen Objekts einschließlich privater Mitglieder enthält. Sie können das zurückgegebene Objekt dann durchlaufen, um alle Werte zu sehen. Diese Methode ähnelt der flash.utils.describeType()-Methode, ermöglicht Ihnen jedoch auch, private Member zu sehen und überspringt den Zwischenschritt der XML-Objekterstellung. Nur für Flash Player-Debugger-Version. Das folgende Beispiel verwendet die getMemberNames()-Methode, um ein Objekt zu analysieren und die buttonMode-, filters- und dispatchEvent-Eigenschaft ihrer Mitglieder anzuzeigen. Um den Speicherprofiler zu verwenden, muss die Flash Player-Debugger-Version 9.0.115.0 oder höher installiert sein. package { import flash.sampler.*; import flash.system.*; import flash.display.Sprite; public class getMemberNamesTest extends Sprite { public function getMemberNamesTest() { var name_iter = getMemberNames(this); var o={}; for each(var name:QName in name_iter) { o[name.localName] = "got it"; } name_iter = getMemberNames(this); var count=0; for(var dum in name_iter) { count++; } trace(count == 1); // my member trace("buttonMode" in o); // inherited member trace("filters" in o); // inherited function trace("dispatchEvent" in o); var name_iter = getMemberNames(getMemberNamesTest, true); var o={}; for each(var name:QName in name_iter) { o[name.localName] = "got it"; } // my member trace("buttonMode" in o); // inherited member trace("filters" in o); // inherited function trace("dispatchEvent" in o); } } } flash.utils.describeType()for each..ingetSampleCount Gibt die Anzahl der gesammelten Samples zurück.Ein Iterator von Sample-Instanzen. Number Gibt die Anzahl der gesammelten Samples zurück. Nur für Flash Player-Debugger-Version. flash.sampler.SamplegetSamples Gibt ein Objekt von Speichernutzungs-Sample-Instanzen aus der letzten Sampling-Sitzung zurück.Ein Iterator von Sample-Instanzen. Object Gibt ein Objekt von Speichernutzungs-Sample-Instanzen aus der letzten Sampling-Sitzung zurück. Nur für Flash Player-Debugger-Version. flash.sampler.SamplegetSavedThis Gibt das gespeicherte "this" von einem Methodenabschluss zurück, das sie normalerweise nicht in AS sehen können.Ein Objekt, das das "this" der MethodClosure ist ObjectobjFunctionEine MethodClosure-Instanz Gibt das gespeicherte "this" von einem Methodenabschluss zurück, das sie normalerweise nicht in AS sehen können. getSetterInvocationCount Gibt die Anzahl der Ausführungen einer set-Funktion zurück.Die Anzahl der Ausführungen einer set-Methode. NumberobjObjectEine Methodeninstanz oder eine Klasse. qnameQNameWenn qname den Wert undefined aufweist, wird die Anzahl der Iterationen der Konstruktorfunktion zurückgegeben. Gibt die Anzahl der Ausführungen einer set-Funktion zurück. Überprüfen Sie mit isGetterSetter(), dass Sie über eine get/set-Funktion verfügen, bevor Sie getSetterInvocationCount() verwenden. Nur für Flash Player-Debugger-Version. isGetterSetter()getInvocationCount()getSize Gibt die Größe eines angegebenen Objekts im Speicher zurück, wenn die Debugger-Version von Flash Player 9.0.115.0 oder höher verwendet wird.Die Bytezählung des vom angegebenen Objekt verwendeten Speichers. NumberoDas für die Speichernutzung zu analysierende Objekt. Gibt die Größe eines angegebenen Objekts im Speicher zurück, wenn die Debugger-Version von Flash Player 9.0.115.0 oder höher verwendet wird. Wenn diese Methode mit einer anderen Flash Player-Version als der Debugger-Version verwendet wird, gibt sie 0 zurück. Im folgenden Beispiel werden startSampling() und pauseSampling verwendet, um Sample-Objekte zu sammeln. Dann werden die Sample-Objekte nach id-Werten und Größen durchlaufen. Nach dem Aufruf von System.gc() zum Stoppen des aktuellen Prozesses werden die deletedObjectSample-Objekte mit den ursprünglichen id-Werten verglichen und ihre Größe wird angezeigt. Um den Speicherprofiler zu verwenden, muss die Flash Player-Debugger-Version 9.0.115.0 oder höher installiert sein. package { import flash.sampler.*; import flash.system.*; import flash.display.Sprite; import flash.utils.Dictionary; public class deletedObjectSize extends Sprite { public function deletedObjectSize() { startSampling(); var obj = {}; pauseSampling(); var id:Number; var sampleIter = getSamples(); for each(var s:Sample in sampleIter) { id = s.id; } sampleIter = getSamples(); var count=0; for(var dum in sampleIter) { count++; } trace(count == 1); var size:Number = getSize(obj); obj = undefined; startSampling(); // force DRC for(var i:int=0;i<1000;i++) new Object(); System.gc(); pauseSampling(); var sampleIter = getSamples(); for each(var s:Sample in sampleIter) { // trace(s); if(s is DeleteObjectSample && s.id == id) { trace(s.size == size); } } } } } isGetterSetter Überprüft, ob eine Eigenschaft durch eine get/set-Funktion definiert wird.Ein boolescher Wert, der angibt, ob die Eigenschaft durch eine get/set-Funktion definiert wird (true) oder nicht (false). BooleanobjObjectEine Methodeninstanz oder eine Klasse. qnameQNameWenn qname den Wert undefined aufweist, wird die Anzahl der Iterationen der Konstruktorfunktion zurückgegeben. Überprüft, ob eine Eigenschaft durch eine get/set-Funktion definiert wird. Wenn Sie getInvocationCount() mit einer get/set-Funktion für eine Eigenschaft verwenden möchten, rufen Sie zuerst isGetterSetter() auf, um zu überprüfen, ob es sich um eine get/set-Funktion handelt, und rufen Sie die entsprechende Anzahl dann mit getSetterInvocationCount oder getGetterInvocationCount ab. Nur für Flash Player-Debugger-Version. package { public function exec3() {} import flash.sampler.*; import flash.system.*; import flash.display.Sprite; import flash.utils.*; public class getInvocationCountTest extends Sprite { public function getInvocationCountTest() { for(var i:int=0;i<10;i++) exec(); for(var i:int=0;i<10;i++) exec2(); for(var i:int=0;i<10;i++) exec3(); // get exec QName var execName:QName; var name:QName; var fooName:QName; for each(name in getMemberNames(this)) { if(name.localName == "exec") execName = name; if(name.localName == "foo") fooName = name; } var exec2Name:QName; for each(name in getMemberNames(getInvocationCountTest)) { if(name.localName == "exec2") exec2Name = name; } // execute get/set foo = "bar"; trace(isGetterSetter(this, fooName)); trace(getSetterInvocationCount(this, fooName) == 1); trace(getGetterInvocationCount(this, fooName) == 0); foo; trace(getSetterInvocationCount(getInvocationCountTest, fooName) == 1); trace(getGetterInvocationCount(getInvocationCountTest, fooName) == 1); trace(getInvocationCount(this, execName) == 10); trace(getInvocationCount(getInvocationCountTest, execName) == 10); trace(getInvocationCount(getInvocationCountTest, exec2Name) == 10); trace(getInvocationCount(getInvocationCountTest, undefined) == 1); getTimer(); getTimer(); trace(getInvocationCount(undefined, new QName("", "trace")) == 9); trace(getInvocationCount(undefined, new QName("flash.utils", "getTimer")) == 2); trace(getInvocationCount(undefined, new QName("", "exec3")) == 10); } private function exec():void {} private static function exec2():void {} private function get foo():String { return "fo"; } private function set foo(s:String) { } } } getInvocationCount()getSetterInvocationCount()getGetterInvocationCount()pauseSampling Beendet den Sammelvorgang vorübergehend. Beendet den Sammelvorgang vorübergehend. Starten Sie den Sampling-Prozess mit startSampling() neu. Nur für Flash Player-Debugger-Version. startSampling()sampleInternalAllocs Teilt dem Sampler mit, ob NewObjectSamples für interne Zuordnungen aus dem Flash Player erstellt werden sollen.bBoolean Teilt dem Sampler mit, ob NewObjectSamples für interne Zuordnungen aus dem Flash Player erstellt werden sollen. Wenn hierfür der Wert „true“ eingestellt wird, generiert jede Zuordnung ein NewObjectSample. Diese internen Zuordnungen haben keinen Typ oder einen Verweis auf das Objekt. Sie haben den ActionScript-Stacktrace, der die Zuordnung ausgelöst hat. Der Standardwert ist „false“, wodurch nur Zuordnungen für ActionScript-Objekte gesammelt werden. setSamplerCallback Legt eine Rückruffunktion für den Sampler fest - diese Funktion wird aufgerufen, wenn der Samplestream beinahe leer ist.fFunction Legt eine Rückruffunktion für den Sampler fest - diese Funktion wird aufgerufen, wenn der Samplestream beinahe leer ist. Diese sollte verwendet werden, um Samples zu verarbeiten, bevor der Samplepuffer voll ist. pauseSampling wird aufgerufen, bevor der Rückruf aufgerufen wird, und startSampling wird aufgerufen, bevor der Rückruf ausgeführt wurde. startSampling Beginnt mit dem Sammeln von Speichernutzungs-Sample-Objekten. Beginnt mit dem Sammeln von Speichernutzungs-Sample-Objekten. Nur für Flash Player-Debugger-Version. Im folgenden Beispiel wird der Sampling-Prozess eingeleitet und durchläuft die gesammelten Objekte. Um den Speicherprofiler zu verwenden, muss die Flash Player-Debugger-Version 9.0.115.0 oder höher installiert sein. package { import flash.sampler.* import flash.system.* import flash.display.Sprite public class startSampling extends Sprite { public function startSampling() { flash.sampler.startSampling(); for(var i:int=0;i<1000;i++) new Object() trace(getSampleCount() > 0) } } } Sample-KlassestopSampling Beendet das Sammeln von Speichernutzungs-Sample-Objekten und macht Ressourcen frei, die für das Sammeln verwendet wurden. Beendet das Sammeln von Speichernutzungs-Sample-Objekten und macht Ressourcen frei, die für das Sammeln verwendet wurden. Sie starten den Sampling-Prozess mit startSampling(). Nur für Flash Player-Debugger-Version. Sample-KlasseSample Die Sample-Klasse erstellt Objekte, die Speicheranalyseinformationen für einen bestimmten Zeitraum enthalten.Object Die Sample-Klasse erstellt Objekte, die Speicheranalyseinformationen für einen bestimmten Zeitraum enthalten. Nur für Flash Player-Debugger-Version. Im folgenden Beispiel werden mit den stack- und time-Eigenschaft eines Sample-Objekts s Speicher-Samples gesammelt. Die Samples enthalten NewObjectSample-Objekte (das newSamples-Array), DeleteObjectSample-Objekte (das delSamples-Array) und CPU-Speicher-Sample-Objekte (das cpuSamples-Array). Um den Speicherprofiler zu verwenden, muss die Flash Player-Debugger-Version 9.0.115.0 oder höher installiert sein. 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()); } } } } flash.sampler.getSamples()stack Enthält Informationen zu den Methoden, die in einem bestimmten Zeitraum vom Flash Player ausgeführt wurden.Array Enthält Informationen zu den Methoden, die in einem bestimmten Zeitraum vom Flash Player ausgeführt wurden. Das Format der Stack-Trace ähnelt dem Inhalt, der im Ausnahme-Dialogfeld der Debugger-Version des Flash Player angezeigt wird. Nur für Flash Player-Debugger-Version. time Die Mikrosekunden, die die Dauer der Sample-Instanz definieren.Number Die Mikrosekunden, die die Dauer der Sample-Instanz definieren. Nur für Flash Player-Debugger-Version. DeleteObjectSample Die DeleteObjectSample-Klasse repräsentiert Objekte, die innerhalb eines getSamples()-Streams erstellt werden; jedes DeleteObjectSample-Objekt entspricht einem NewObjectSample-Objekt.flash.sampler:Sample Die DeleteObjectSample-Klasse repräsentiert Objekte, die innerhalb eines getSamples()-Streams erstellt werden; jedes DeleteObjectSample-Objekt entspricht einem NewObjectSample-Objekt. Nur für Flash Player-Debugger-Version. Im folgenden Beispiel werden mit den stack- und time-Eigenschaft eines Sample-Objekts s Speicher-Samples gesammelt. Die Samples enthalten NewObjectSample-Objekte (das newSamples-Array), DeleteObjectSample-Objekte (das delSamples-Array) und CPU-Speicher-Sample-Objekte (das cpuSamples-Array). Um den Speicherprofiler zu verwenden, muss die Flash Player-Debugger-Version 9.0.115.0 oder höher installiert sein. 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()); } } } } flash.sampler.getSamples()id Die eindeutige Identifikationsnummer, die mit der Identifikationsnummer eines NewObjectSample abgeglichen wird.Number Die eindeutige Identifikationsnummer, die mit der Identifikationsnummer eines NewObjectSample abgeglichen wird. Nur für Flash Player-Debugger-Version. flash.sampler.NewObjectSample.idsize Die Größe des DeleteObjectSample-Objekts vor dem Löschen.Number Die Größe des DeleteObjectSample-Objekts vor dem Löschen. Nur für Flash Player-Debugger-Version. flash.sampler.NewObjectSample.id