Questo pacchetto viene utilizzato dall'agente di creazione profili, distribuito con Adobe Flash Builder, e fornito per consentire la personalizzazione dell'agente o per la creazione di test personalizzati. Utilizzate il metodo
startSampling()
e la versione di debug di Flash Player 9.0.115.0 o versione successiva per raccogliere campioni dell'utilizzo della memoria. Utilizzate quindi il pacchetto
getSamples()
per recuperare i campioni di utilizzo della memoria. Dai campioni è possibile rilevare l'utilizzo della memoria relativo a intervalli distinti di un'applicazione in esecuzione. Utilizzate quindi gli altri metodi contenuti nel pacchetto
flash.sampler
per analizzare le informazioni sull'utilizzo della memoria.
Nota: se create un agente di creazione profili personalizzato, precaricate il file SWF dell'agente impostando la proprietà PreloadSwf
nel file mm.cfg:
PreloadSwf=C:/Documents and Settings/username/testingagent.swf?aparam=asetting
Ogni file SWF di agente precaricato dispone di un proprio dominio di sicurezza e viene eseguito in una sandbox di sicurezza distinta dal file SWF principale di cui viene creato il profilo. Per eseguire i metodi del pacchetto flash.sampler
, è necessario che il file SWF dell'agente si trovi in un percorso di file localTrusted (vedete Security Center).
Metodi pubblici
| Funzione | Definito da |
---|
| |
Cancella il set corrente di oggetti Sample. | flash.sampler |
| |
Restituisce il numero di volte in cui una funzione get è stata eseguita. | flash.sampler |
| |
Restituisce il numero di volte in cui un metodo è stato eseguito. | flash.sampler |
| |
Espone l'area lessicale di una funzione in modo tale che gli oggetti scope catturati (inclusi gli oggetti di attivazione e con aree lessicali) siano visibili dal profiler e risultino memorizzati dall'istanza Function. | flash.sampler |
| |
Restituisce la stringa master da cui dipende questa stringa oppure null se la stringa non dipende da un'altra stringa. | flash.sampler |
| |
Restituisce un oggetto contenente tutti i membri di un oggetto specificato, compresi membri privati. | flash.sampler |
| |
Restituisce il numero di campioni raccolti. | flash.sampler |
| |
Restituisce un oggetto di istanze Sample relative all’uso della memoria dall’ultima sessione di campionamento. | flash.sampler |
| |
Restituisce l'elemento "this" salvato da una chiusura di metodo normalmente non visibile da ActionScript. | flash.sampler |
| |
Restituisce il numero di volte in cui una funzione set è stata eseguita. | flash.sampler |
| |
Restituisce le dimensioni della memoria di un oggetto specificato se utilizzata con Flash Player 9.0.115.0 o una versione debugger successiva. | flash.sampler |
| |
Controlla se una proprietà è stata definita dalla funzione get/set. | flash.sampler |
| |
Interrompe momentaneamente il processo di campionamento. | flash.sampler |
| |
Indica al campionatore se dovrà creare oggetti NewObjectSample per le allocazioni interne da Flash Player. | flash.sampler |
| |
Imposta una funzione di callback per il campionatore; la funzione verrà chiamata quando il flusso di campionamento è quasi esaurito. | flash.sampler |
| |
Inizia il processo di raccolta di oggetti Sample relativi all’uso della memoria. | flash.sampler |
| |
Interrompe il processo di raccolta di oggetti Sample dell'uso della memoria e libera risorse dedicate al processo di campionamento. | flash.sampler |
public function clearSamples():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Cancella il set corrente di oggetti Sample. Questo metodo viene generalmente chiamato dopo una chiamata al metodo getSamples()
e un'iterazione sugli oggetti Sample. Disponibile solo nella versione debugger di Flash Player.
Elementi API correlati
public function getGetterInvocationCount(obj:Object, qname:QName):Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce il numero di volte in cui una funzione get è stata eseguita. Utilizzate isGetterSetter()
per verificare di disporre di una funzione get/set prima di utilizzare getGetterInvocationCount()
. Disponibile solo nella versione debugger di Flash Player.
Parametri
| obj:Object — Un'istanza di un metodo o di una classe.
|
|
| qname:QName — Se qname è undefined , il metodo restituisce il numero di iterazioni della funzione di costruzione.
|
Restituisce | Number — Il numero di volte in cui un metodo get è stato eseguito.
|
Elementi API correlati
public function getInvocationCount(obj:Object, qname:QName):Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce il numero di volte in cui un metodo è stato eseguito. Se il parametro obj
è una classe e il parametro qname
è undefined
, questo metodo restituisce il numero di iterazioni della funzione di costruzione. Disponibile solo nella versione debugger di Flash Player.
Parametri
| obj:Object — Un'istanza di un metodo o di una classe. Una classe può essere utilizzata per ottenere il numero di chiamate a funzioni di istanza, quando l'istanza di un metodo non è disponibile. Se obj è undefined , questo metodo restituisce il numero di funzioni destinate al pacchetto denominate da qname .
|
|
| qname:QName — Se qname è undefined , il metodo restituisce il numero di iterazioni della funzione di costruzione.
|
Restituisce | Number — Il numero di volte in cui un metodo è stato eseguito.
|
Esempio (
Come utilizzare questo esempio )
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
Espone l'area lessicale di una funzione in modo tale che gli oggetti scope catturati (inclusi gli oggetti di attivazione e con aree lessicali) siano visibili dal profiler e risultino memorizzati dall'istanza Function.
Parametri
Restituisce | Array — Un array contenente tutti gli elementi di area lessicale
|
public function getMasterString(str:String):String
Versione linguaggio: | ActionScript 3.0 |
Restituisce la stringa master da cui dipende questa stringa oppure null se la stringa non dipende da un'altra stringa. Ad esempio, se chiamate String.substr()
, la stringa restituita verrà in effetti spesso implementata semplicemente come puntatore alla stringa originale, al fine di ottimizzare l'efficienza. Nell'uso normale, questo è un dettaglio di implementazione che non è visibile all'utente; tuttavia può indurre in confusione quando si utilizza un profiler per analizzare il consumo di memoria del programma, potrebbe essere indicato che la stringa usa meno memoria di quella che sarebbe necessaria per il valore della stringa. Inoltre, una stringa potrebbe essere trattenuta in memoria solo perché funge da master per le altre stringhe. getMasterString()
consente ai profiler di visualizzare all'utente un grafico preciso delle dipendenze tra le stringhe.
Parametri
Restituisce | String — La stringa da cui dipende la stringa passata, oppure null se la stringa passata non dipende da un'altra stringa.
|
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce un oggetto contenente tutti i membri di un oggetto specificato, compresi membri privati. Potete quindi iterare sopra l'oggetto restituito per visualizzare tutti i valori. Questo metodo è simile al metodo flash.utils.describeType(), con la differenza che consente anche di visualizzare i membri privati e salta la fase intermedia di creazione di un oggetto XML. Disponibile solo nella versione debugger di Flash Player.
Parametri
| o:Object — L'oggetto da analizzare.
|
|
| instanceNames:Boolean (default = false ) — Se object è una classe e instanceNames è true, segnala i nomi delle istanze come fossero un'istanza della classe anziché i nomi dei membri della classe.
|
Restituisce | Object — Un oggetto sul quale eseguire un'iterazione con un ciclo for each..in per recuperare i QNames di ogni singola proprietà.
|
Elementi API correlati
Esempio (
Come utilizzare questo esempio )
Nell'esempio seguente viene utilizzato il metodo
getMemberNames()
per analizzare un oggetto e visualizzare le proprietà
buttonMode
,
filters
e
dispatchEvent
dei suoi membri. Per utilizzare il profilo memoria è necessario avere installato Flash Player versione di debug 9.0.115.0 o versione successiva.
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
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce il numero di campioni raccolti. Disponibile solo nella versione debugger di Flash Player.
Restituisce | Number — Un iteratore di istanze Sample.
|
Elementi API correlati
public function getSamples():Object
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce un oggetto di istanze Sample relative all’uso della memoria dall’ultima sessione di campionamento. Disponibile solo nella versione debugger di Flash Player.
Restituisce | Object — Un iteratore di istanze Sample.
|
Elementi API correlati
public function getSavedThis(obj:Function):Object
Restituisce l'elemento "this" salvato da una chiusura di metodo normalmente non visibile da ActionScript.
Parametri
Restituisce | Object — Un oggetto corrispondente al "this" della chiusura di metodo.
|
public function getSetterInvocationCount(obj:Object, qname:QName):Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce il numero di volte in cui una funzione set è stata eseguita. Utilizzate isGetterSetter()
per verificare di disporre di una funzione get/set prima di utilizzare getSetterInvocationCount()
. Disponibile solo nella versione debugger di Flash Player.
Parametri
| obj:Object — Un'istanza di un metodo o di una classe.
|
|
| qname:QName — Se qname è undefined , il metodo restituisce il numero di iterazioni della funzione di costruzione.
|
Restituisce | Number — Il numero di volte in cui un metodo set è stato eseguito.
|
Elementi API correlati
public function getSize(o:*):Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Restituisce le dimensioni della memoria di un oggetto specificato se utilizzata con Flash Player 9.0.115.0 o una versione debugger successiva. Se utilizzato con una versione di Flash Player diversa da quella di debug, questo metodo restituisce il valore 0
.
Parametri
| o:* — L'oggetto da analizzare per l'uso della memoria.
|
Restituisce | Number — Il numero di byte di memoria utilizzati dall'oggetto specificato.
|
Esempio (
Come utilizzare questo esempio )
Nell'esempio seguente vengono utilizzati i metodi
startSampling()
e
pauseSampling
per raccogliere oggetti Sample. L'esempio esegue un'iterazione sopra gli oggetti Sample per dimensioni e valori
id
. Dopo aver chiamato il metodo
System.gc()
per interrompere il processo corrente, l'esempio confronta gli oggetti deletedObjectSample con i valori
id
originali e ne visualizza le dimensioni. Per utilizzare il profilo memoria è necessario avere installato Flash Player versione di debug 9.0.115.0 o versione successiva.
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
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Controlla se una proprietà è stata definita dalla funzione get/set. Se desiderate utilizzare getInvocationCount()
su una funzione get/set di una proprietà, chiamate prima il metodo isGetterSetter()
per verificare se si tratta effettivamente di una funzione get/set, quindi utilizzate getSetterInvocationCount
o getGetterInvocationCount
per ottenere i rispettivi conteggi. Disponibile solo nella versione debugger di Flash Player.
Parametri
| obj:Object — Un'istanza di un metodo o di una classe.
|
|
| qname:QName — Se qname è undefined , il metodo restituisce il numero di iterazioni della funzione di costruzione.
|
Restituisce | Boolean — Un valore booleano che indica se la proprietà è definita da una funzione get/set (true ) o meno (false ).
|
Elementi API correlati
Esempio (
Come utilizzare questo esempio )
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
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Interrompe momentaneamente il processo di campionamento. Riavviate il processo di campionamento mediante startSampling()
. Disponibile solo nella versione debugger di Flash Player.
Elementi API correlati
public function sampleInternalAllocs(b:Boolean):void
Versione linguaggio: | ActionScript 3.0 |
Indica al campionatore se dovrà creare oggetti NewObjectSample per le allocazioni interne da Flash Player. Se è impostata su true, ogni allocazione genera un oggetto NewObjectSample. Questi valori allocs interni non hanno un tipo o un riferimento all'oggetto. Avranno la traccia dello stack ActionScript che ha attivato l'allocazione. Il valore predefinito è false, che raccoglie solo le allocazioni per gli oggetti ActionScript.
Parametri
public function setSamplerCallback(f:Function):void
Versione linguaggio: | ActionScript 3.0 |
Imposta una funzione di callback per il campionatore; la funzione verrà chiamata quando il flusso di campionamento è quasi esaurito. Dovrà essere utilizzata per elaborare i campioni, prima che il buffer venga riempito. pauseSampling verrà chiamato prima della funzione di callback, mentre startSampling verrà chiamato dopo l'esecuzione della funzione di callback.
Parametri
public function startSampling():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Inizia il processo di raccolta di oggetti Sample relativi all’uso della memoria. Disponibile solo nella versione debugger di Flash Player.
Elementi API correlati
Esempio (
Come utilizzare questo esempio )
Nell'esempio seguente viene avviato il processo di campionamento e viene eseguita un'iterazione sopra gli oggetti raccolti. Per utilizzare il profilo memoria è necessario disporre di Flash Player versione di debug 9.0.115.0 o successiva.
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
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Interrompe il processo di raccolta di oggetti Sample dell'uso della memoria e libera risorse dedicate al processo di campionamento. Avviate il processo di campionamento mediante startSampling()
. Disponibile solo nella versione debugger di Flash Player.
Elementi API correlati
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 03:02 PM Z