flash.samplerStackFrame La classe StackFrame permet d’accéder aux propriétés d’un bloc de données contenant une fonction.Object La classe StackFrame permet d’accéder aux propriétés d’un bloc de données contenant une fonction. Pour la version débogueur de Flash Player uniquement. toString Convertit la classe StackFrame en une chaîne possédant les mêmes propriétés.Chaîne contenant la propriété name et, éventuellement, les propriétés file et line de l’objet StackFrame (dans le cas d’un débogage du fichier SWF). Pour la version débogueur de Flash Player uniquement. String Convertit la classe StackFrame en une chaîne possédant les mêmes propriétés. file Nom du fichier SWF faisant l’objet d’un débogage.String Nom du fichier SWF faisant l’objet d’un débogage. Pour la version débogueur de Flash Player uniquement. line Numéro de ligne de la fonction dans le fichier SWF faisant l’objet d’un débogage.uint Numéro de ligne de la fonction dans le fichier SWF faisant l’objet d’un débogage. Pour la version débogueur de Flash Player uniquement. name Nom de la fonction dans la classe StackFrame.String Nom de la fonction dans la classe StackFrame. Pour la version débogueur de Flash Player uniquement. scriptID Identificateur de la fonction de script dans l’application en cours de profilage.Number Identificateur de la fonction de script dans l’application en cours de profilage. NewObjectSample La classe NewObjectSample représente les objets créés dans un flux getSamples().flash.sampler:Sample La classe NewObjectSample représente les objets créés dans un flux getSamples(). Pour la version débogueur de Flash Player uniquement. L’exemple suivant a recours aux propriétés stack et time d’un objet Sample s pour collecter des échantillons mémoire. Ces échantillons contiennent des objets NewObjectSample (le tableau newSamples), des objets DeleteObjectSample (le tableau delSamples), ainsi que des objets exemple de mémoire processeur (le tableau cpuSamples). Pour utiliser le testeur de mémoire, vous devez disposer de la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. 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 Objet de classe correspondant à l’objet créé dans un flux getSamples().Class Objet Class correspondant à l’objet créé dans un flux getSamples(). Pour la version débogueur de Flash Player uniquement. object L’objet NewObjectSample, s’il existe encore. L’objet NewObjectSample, s’il existe encore. Si l’objet a été nettoyé, cette propriété renvoie undefined et un objet DeleteObjectSample correspondant existe. Pour la version débogueur de Flash Player uniquement. flash.sampler.DeleteObjectSamplesize Taille de l’objet NewObjectSample.Number Taille de l’objet NewObjectSample. Si l’objet a été nettoyé, cette propriété renvoie undefined et l’objet DeleteObjectSample correspondant est créé. Pour la version de débogage de FlashPlayer uniquement. flash.sampler.DeleteObjectSampleclearSamples Supprime le jeu d’objets Sample actuel. Supprime le jeu d’objets Sample actuel. Cette méthode est généralement appelée après l’appel de getSamples() et l’itération sur les objets Sample. Pour la version débogueur de Flash Player uniquement. getSamples()getGetterInvocationCount Renvoie le nombre d’exécutions d’une fonction get. Nombre d’exécutions d’une méthode get. NumberobjObjectOccurrence de méthode ou classe. qnameQNameSi qname renvoie undefined, cette méthode renvoie le nombre d'itérations de la fonction de constructeur. Renvoie le nombre d’exécutions d’une fonction get. Utilisez isGetterSetter() pour vérifier que vous disposez d’une fonction get/set avant d’utiliser getGetterInvocationCount(). Pour la version débogueur de Flash Player uniquement. isGetterSetter()getInvocationCount()getInvocationCount Renvoie le nombre d’exécutions d’une méthode.Nombre d’exécutions d’une méthode. NumberobjObjectOccurrence de méthode ou classe. Il est possible d’utiliser une classe pour obtenir le nombre d’appels des fonctions d’occurrence lorsque l’occurrence d’une méthode n’est pas disponible. Si le paramètre obj renvoie undefined, cette méthode renvoie le nombre de fonctions de package nommées par qname. qnameQNameSi qname renvoie undefined, cette méthode renvoie le nombre d'itérations de la fonction de constructeur. Renvoie le nombre d’exécutions d’une méthode. Si le paramètre obj est un objet Class et que le paramètre qname renvoie undefined, cette méthode renvoie le nombre d’itérations de la fonction de constructeur. Pour la version débogueur de Flash Player uniquement. 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 Expose le domaine lexical d’une fonction de façon à ce que le profileur puisse voir les objets scope capturés (y compris les objets activation et les domaines with) comme étant retenus par l’occurrence de la fonction.Tableau contenant tous les éléments du domaine lexical ArrayobjFunctionUne fonction Expose le domaine lexical d’une fonction de façon à ce que le profileur puisse voir les objets scope capturés (y compris les objets activation et les domaines with) comme étant retenus par l’occurrence de la fonction. getMasterString Renvoie la chaîne principale dont cette chaîne dépend, ou null si la valeur de cette chaîne ne dépend pas d’une autre chaîne.Chaîne dont dépend la chaîne transmise, ou null si la chaîne transmise ne dépend pas d’une autre chaîne. StringstrStringUne chaîne Renvoie la chaîne principale dont cette chaîne dépend, ou null si la valeur de cette chaîne ne dépend pas d’une autre chaîne. Par exemple, si vous appelez String.substr(), la chaîne renvoyée est en fait généralement implémentée comme pointeur dans la chaîne d’origine, par souci d’efficacité. En mode normal, il s’agit d’un détail d’implémentation que l’utilisateur ne voit pas. Toutefois, il peut prêter à confusion lors de l’utilisation d’un profileur pour analyser la consommation de mémoire de votre programme, car il est possible que la chaîne indique qu’elle utilise moins de mémoire que nécessaire pour la valeur de la chaîne. Il est par ailleurs possible qu’une chaîne soit conservée en mémoire uniquement parce qu’elle est la chaîne principale pour d’autres chaînes. getMasterString() permet aux profileurs de présenter à l’utilisateur un graphique précis de dépendances de chaînes. getMemberNames Renvoie un objet contenant tous les membres d’un objet spécifié, y compris les membres privés.Objet sur lequel vous devez effectuer une itération à l’aide d’une boucle for each..in afin de récupérer la classe finale QNames de chaque propriété. ObjectoObjectObjet à analyser. instanceNamesBooleanfalseS’il s’agit d’un objet de classe et si la propriété instanceNames est définie sur true, signalez les noms d’occurrence comme s’il s’agissait de l’occurrence d’une classe au lieu des noms des membres de classe. Renvoie un objet contenant tous les membres d’un objet spécifié, y compris les membres privés. Vous pouvez ensuite procéder à l’itération sur l’objet renvoyé pour obtenir toutes les valeurs. Cette méthode est similaire à la méthode flash.utils.describeType() ; elle vous permet en outre d’afficher les membres privés et d’ignorer l’étape intermédiaire de création d’un objet XML. Pour la version débogueur de Flash Player uniquement. L’exemple suivant a recours à la méthode getMemberNames() pour analyser un objet et afficher les propriétés buttonMode, filters et dispatchEvent de ses membres. Pour utiliser le testeur de mémoire, vous devez disposer de la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. 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 Renvoie le nombre d’échantillons collectés.Itérateur des occurrences Sample. Number Renvoie le nombre d’échantillons collectés. Pour la version débogueur de Flash Player uniquement. flash.sampler.SamplegetSamples Renvoie un objet des occurrences Sample d’utilisation de la mémoire depuis la dernière session d’échantillonnageItérateur des occurrences Sample. Object Renvoie un objet des occurrences Sample d’utilisation de la mémoire depuis la dernière session d’échantillonnage. Pour la version débogueur de Flash Player uniquement. flash.sampler.SamplegetSavedThis Renvoie l’élément "this" enregistré depuis une fermeture de méthode que vous ne pouvez normalement pas voir depuis AS.Objet représentant l’élément "this" de MethodClosure ObjectobjFunctionUne occurrence de MethodClosure Renvoie l’élément "this" enregistré depuis une fermeture de méthode que vous ne pouvez normalement pas voir depuis AS. getSetterInvocationCount Renvoie le nombre d’exécutions d’une fonction set.Nombre d’exécutions d’une méthode set. NumberobjObjectOccurrence de méthode ou classe. qnameQNameSi qname renvoie undefined, cette méthode renvoie le nombre d'itérations de la fonction de constructeur. Renvoie le nombre d’exécutions d’une fonction set. Utilisez isGetterSetter() pour vérifier que vous disposez d’une fonction get/set avant d’utiliser la fonction getSetterInvocationCount(). Pour la version débogueur de Flash Player uniquement. isGetterSetter()getInvocationCount()getSize Renvoie la taille en mémoire d’un objet spécifique lors de l’utilisation de la version de débogage de Flash Player 9.0.115.0. ou ultérieure.Nombre d’octets de la mémoire utilisés par l’objet spécifié. NumberoObjet à analyser pour l’utilisation de la mémoire. Renvoie la taille en mémoire d’un objet spécifique lors de l’utilisation de la version de débogage de Flash Player 9.0.115.0. ou ultérieure. Si cet objet n’est pas utilisé avec la version de débogage de Flash Player, cette méthode renvoie 0. L’exemple suivant a recours aux fonctions startSampling() et pauseSampling pour collecter les objets Sample. L’exemple procède ensuite à l’itération sur les objets Sample pour les valeurs et les tailles id. Faisant suite à l’appel de la méthode System.gc() pour arrêter le processus en cours, l’exemple compare les objets deletedObjectSample aux valeurs id originales, puis affiche leur taille. Pour utiliser le testeur de mémoire, vous devez disposer de la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. 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 Vérifie si une propriété est définie par une fonction get/set.Valeur booléenne qui indique si la propriété est définie par une fonction get/set (true) ou non (false). BooleanobjObjectOccurrence de méthode ou classe. qnameQNameSi qname renvoie undefined, cette méthode renvoie le nombre d'itérations de la fonction de constructeur. Vérifie si une propriété est définie par une fonction get/set. Si vous souhaitez utiliser la fonction getInvocationCount() sur une fonction get/set pour une propriété, vous devez tout d’abord appeler isGetterSetter() pour vérifier s’il s’agit d’une fonction get/set, puis utiliser getSetterInvocationCount ou getGetterInvocationCount afin d’obtenir les compteurs respectifs. Pour la version débogueur de Flash Player uniquement. 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 Interrompt momentanément l’échantillonnage. Interrompt momentanément l’échantillonnage. Pour relancer l’échantillonnage, utilisez la fonction startSampling(). Pour la version débogueur de Flash Player uniquement. startSampling()sampleInternalAllocs Indique à l’échantillonneur s’il doit créer des objets NewObjectSample pour des allocations internes depuis Flash Player.bBoolean Indique à l’échantillonneur s’il doit créer des objets NewObjectSample pour des allocations internes depuis Flash Player. Si cette propriété est définie sur true, chaque allocation génère un objet NewObjectSample. Ces allocations internes ne possèdent pas de type, ni de référence à l’objet. C’est la trace de la pile ActionScript qui a déclenché l’allocation. Par défaut, cette propriété est définie sur false, ce qui a pour unique objectif de recueillir des allocations pour les objets ActionScript. setSamplerCallback Définit une fonction de rappel pour l’échantillonneur ; cette fonction est appelée une fois le flux de l’échantillon épuisé.fFunction Définit une fonction de rappel pour l’échantillonneur ; cette fonction est appelée une fois le flux de l’échantillon épuisé. Elle doit être utilisée pour traiter les échantillons avant que la mémoire tampon ne soit pleine. pauseSampling est appelée avant que le rappel n’ait lieu et startSampling est appelée une fois le rappel exécuté. startSampling Commence le processus de collecte des objets Sample d’utilisation de la mémoire. Commence le processus de collecte des objets Sample d’utilisation de la mémoire. Pour la version débogueur de Flash Player uniquement. L’exemple suivant lance le processus d’échantillonnage et effectue une itération sur les objets collectés. Pour utiliser le testeur de mémoire, vous devez disposer de la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. 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) } } } Classe SamplestopSampling Termine le processus de collecte des objets Sample d’utilisation de la mémoire et libère les ressources dédiées à l’échantillonnage. Termine le processus de collecte des objets Sample d’utilisation de la mémoire et libère les ressources dédiées à l’échantillonnage. Pour démarrer l’échantillonnage, utilisez la fonction startSampling(). Pour la version débogueur de Flash Player uniquement. Classe SampleSample La classe Sample crée des objets qui renferment des informations d’analyse de la mémoire sur plusieurs durées.Object La classe Sample crée des objets qui renferment des informations d’analyse de la mémoire sur plusieurs durées. Pour la version débogueur de Flash Player uniquement. L’exemple suivant a recours aux propriétés stack et time d’un objet Sample s pour collecter des échantillons mémoire. Ces échantillons contiennent des objets NewObjectSample (le tableau newSamples), des objets DeleteObjectSample (le tableau delSamples), ainsi que des objets exemple de mémoire processeur (le tableau cpuSamples). Pour utiliser le testeur de mémoire, vous devez disposer de la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. 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 Contient des informations sur les méthodes exécutées par Flash Player dans un délai spécifique.Array Contient des informations sur les méthodes exécutées par Flash Player dans un délai spécifique. Le format de la trace de pile est similaire au contenu affiché dans la boîte de dialogue de l’exception de la version de débogage de Flash Player. Pour la version débogueur de Flash Player uniquement. time Microsecondes définissant la durée de l’occurrence de Sample.Number Microsecondes définissant la durée de l’occurrence de Sample. Pour la version débogueur de Flash Player uniquement. DeleteObjectSample La classe DeleteObjectSample représente les objets créés dans un flux getSamples() ; chaque objet DeleteObjectSample correspond à un objet NewObjectSample.flash.sampler:Sample La classe DeleteObjectSample représente les objets créés dans un flux getSamples() ; chaque objet DeleteObjectSample correspond à un objet NewObjectSample. Pour la version débogueur de Flash Player uniquement. L’exemple suivant a recours aux propriétés stack et time d’un objet Sample s pour collecter des échantillons mémoire. Ces échantillons contiennent des objets NewObjectSample (le tableau newSamples), des objets DeleteObjectSample (le tableau delSamples), ainsi que des objets exemple de mémoire processeur (le tableau cpuSamples). Pour utiliser le testeur de mémoire, vous devez disposer de la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. 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 Numéro d’identification unique correspondant au numéro d’identification d’un objet NewObjectSample.Number Numéro d’identification unique correspondant au numéro d’identification d’un objet NewObjectSample. Pour la version débogueur de Flash Player uniquement. flash.sampler.NewObjectSample.idsize Taille de l’objet DeleteObjectSample avant sa suppression.Number Taille de l’objet DeleteObjectSample avant sa suppression. Pour la version débogueur de Flash Player uniquement. flash.sampler.NewObjectSample.id