Ce package est utilisé par l’agent de profilage distribué avec Adobe Flash Builder et fourni pour personnaliser l’agent de création de profils ou de réalisation de vos propres tests de mémoire. Utilisez la méthode
startSampling()
et le débogueur de Flash Player version 9.0.115.0 ou ultérieure pour réunir des exemples d’utilisation de la mémoire. Utilisez ensuite la méthode
getSamples()
pour extraire des exemples d’utilisation de la mémoire. Les exemples permettent de mieux comprendre l’utilisation de la mémoire aux différents stades de l’application. Ensuite, utilisez les autres méthodes du package
flash.sampler
pour analyser les informations d’utilisation de la mémoire.
Remarque : si vous créez votre propre agent de profilage personnalisé, préchargez le fichier SWF de l'agent en définissant la propriété PreloadSwf
mm.cfg dans le fichier
PreloadSwf=C:/Documents and Settings/username/testingagent.swf?aparam=asetting
Chaque fichier SWF d’agent préchargé possède son propre domaine de sécurité et s’exécute dans un sandbox de sécurité distinct du fichier SWF principal en cours de profilage. Pour exécuter les méthodes du package flash.sampler
, le fichier SWF d’agent doit se trouver dans un chemin de fichiers approuvé localement (voir la rubrique Centre de sécurité).
Méthodes publiques
| Fonction | Défini par |
---|
| |
Supprime le jeu d’objets Sample actuel. | flash.sampler |
| |
Renvoie le nombre d’exécutions d’une fonction get. | flash.sampler |
| |
Renvoie le nombre d’exécutions d’une méthode. | flash.sampler |
| |
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. | flash.sampler |
| |
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. | flash.sampler |
| |
Renvoie un objet contenant tous les membres d’un objet spécifié, y compris les membres privés. | flash.sampler |
| |
Renvoie le nombre d’échantillons collectés. | flash.sampler |
| |
Renvoie un objet des occurrences Sample d’utilisation de la mémoire depuis la dernière session d’échantillonnage | flash.sampler |
| |
Renvoie l’élément "this" enregistré depuis une fermeture de méthode que vous ne pouvez normalement pas voir depuis AS. | flash.sampler |
| |
Renvoie le nombre d’exécutions d’une fonction set. | flash.sampler |
| |
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. | flash.sampler |
| |
Vérifie si une propriété est définie par une fonction get/set. | flash.sampler |
| |
Interrompt momentanément l’échantillonnage. | flash.sampler |
| |
Indique à l’échantillonneur s’il doit créer des objets NewObjectSample pour des allocations internes depuis Flash Player. | flash.sampler |
| |
Définit une fonction de rappel pour l’échantillonneur ; cette fonction est appelée une fois le flux de l’échantillon épuisé. | flash.sampler |
| |
Commence le processus de collecte des objets Sample d’utilisation de la mémoire. | flash.sampler |
| |
Termine le processus de collecte des objets Sample d’utilisation de la mémoire et libère les ressources dédiées à l’échantillonnage. | flash.sampler |
public function clearSamples():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Eléments de l’API associés
public function getGetterInvocationCount(obj:Object, qname:QName):Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Paramètres
| obj:Object — Occurrence de méthode ou classe.
|
|
| qname:QName — Si qname renvoie undefined , cette méthode renvoie le nombre d'itérations de la fonction de constructeur.
|
Valeur renvoyée | Number — Nombre d’exécutions d’une méthode get.
|
Eléments de l’API associés
public function getInvocationCount(obj:Object, qname:QName):Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Paramètres
| obj:Object — Occurrence 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 .
|
|
| qname:QName — Si qname renvoie undefined , cette méthode renvoie le nombre d'itérations de la fonction de constructeur.
|
Valeur renvoyée | Number — Nombre d’exécutions d’une méthode.
|
Exemple (
Comment utiliser cet exemple )
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) { }
}
}
public function getLexicalScopes(obj:Function):Array
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.
Paramètres
Valeur renvoyée | Array — Tableau contenant tous les éléments du domaine lexical
|
public function getMasterString(str:String):String
Version du langage: | ActionScript 3.0 |
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.
Paramètres
Valeur renvoyée | String — 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.
|
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Paramètres
| o:Object — Objet à analyser.
|
|
| instanceNames:Boolean (default = false ) — S’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.
|
Valeur renvoyée | Object — 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é.
|
Eléments de l’API associés
Exemple (
Comment utiliser cet exemple )
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);
}
}
}
public function getSampleCount():Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
Renvoie le nombre d’échantillons collectés. Pour la version débogueur de Flash Player uniquement.
Valeur renvoyée | Number — Itérateur des occurrences Sample.
|
Eléments de l’API associés
public function getSamples():Object
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Valeur renvoyée | Object — Itérateur des occurrences Sample.
|
Eléments de l’API associés
public function getSavedThis(obj:Function):Object
Renvoie l’élément "this" enregistré depuis une fermeture de méthode que vous ne pouvez normalement pas voir depuis AS.
Paramètres
| obj:Function — Une occurrence de MethodClosure
|
Valeur renvoyée | Object — Objet représentant l’élément "this" de MethodClosure
|
public function getSetterInvocationCount(obj:Object, qname:QName):Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Paramètres
| obj:Object — Occurrence de méthode ou classe.
|
|
| qname:QName — Si qname renvoie undefined , cette méthode renvoie le nombre d'itérations de la fonction de constructeur.
|
Valeur renvoyée | Number — Nombre d’exécutions d’une méthode set.
|
Eléments de l’API associés
public function getSize(o:*):Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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
.
Paramètres
| o:* — Objet à analyser pour l’utilisation de la mémoire.
|
Valeur renvoyée | Number — Nombre d’octets de la mémoire utilisés par l’objet spécifié.
|
Exemple (
Comment utiliser cet exemple )
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);
}
}
}
}
}
public function isGetterSetter(obj:Object, qname:QName):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Paramètres
| obj:Object — Occurrence de méthode ou classe.
|
|
| qname:QName — Si qname renvoie undefined , cette méthode renvoie le nombre d'itérations de la fonction de constructeur.
|
Valeur renvoyée | Boolean — Valeur booléenne qui indique si la propriété est définie par une fonction get/set (true ) ou non (false ).
|
Eléments de l’API associés
Exemple (
Comment utiliser cet exemple )
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) { }
}
}
public function pauseSampling():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
Interrompt momentanément l’échantillonnage. Pour relancer l’échantillonnage, utilisez la fonction startSampling()
. Pour la version débogueur de Flash Player uniquement.
Eléments de l’API associés
public function sampleInternalAllocs(b:Boolean):void
Version du langage: | ActionScript 3.0 |
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.
Paramètres
public function setSamplerCallback(f:Function):void
Version du langage: | ActionScript 3.0 |
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é.
Paramètres
public function startSampling():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
Commence le processus de collecte des objets Sample d’utilisation de la mémoire. Pour la version débogueur de Flash Player uniquement.
Eléments de l’API associés
Exemple (
Comment utiliser cet exemple )
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)
}
}
}
public function stopSampling():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0 |
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.
Eléments de l’API associés
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 09:48 AM Z