Esse pacote é usado pelo agente de determinação de perfis, distribuído com o Adobe Flash Builder, e é fornecido para que você personalize o agente de determinação de perfis ou crie seus próprios testes de memória. Use o método
startSampling()
e o depurador Flash Player versão 9.0.115.0 ou superior para coletar amostras de uso da memória. Em seguida, use o método
getSamples()
para recuperar amostras de uso da memória. As amostras revelam o uso da memória de intervalos distintos de um aplicativo em execução. Em seguida, use os outros métodos no pacote
flash.sampler
para analisar as informações de uso da memória.
Observação: se você criar seu próprio agente de determinação de perfis personalizado, pré-carregue o arquivo SWF agente, configurando a propriedade PreloadSwf
no arquivo mm.cfg:
PreloadSwf=C:/Documents and Settings/Nome_de_Usuário/testingagent.swf?aparam=asetting
Cada arquivo SWF agente pré-carregado tem seu próprio domínio de segurança e é executado em um modo seguro distinto, no arquivo SWF principal cujo perfil está sendo determinado. Para executar os métodos do pacote flash.sampler
, o arquivo SWF agente deve estar em um caminho de arquivo localTrusted (consulte o Centro de segurança).
Métodos públicos
| Função | Definido por |
---|
| |
Exclui o conjunto atual de objetos Sample. | flash.sampler |
| |
Retorna o número de vezes que uma função get foi executada. | flash.sampler |
| |
Retorna o número de vezes que um método foi executado. | flash.sampler |
| |
Expõe o escopo léxico de uma Função para que os objetos de escopo capturados (inclusive objetos de ativação e com escopos) sejam vistos pelo perfilador como retidos pela instância Função. | flash.sampler |
| |
Retorna a string da página-mestre da qual esta string depende, ou null se esta string não depender de outra. | flash.sampler |
| |
Retorna um objeto contendo todos os membros de um objeto especificado, incluindo os membros privados. | flash.sampler |
| |
Retorna o número de amostras coletadas. | flash.sampler |
| |
Retorna um objeto de ocorrências de Sample de uso de memória da última sessão de amostragem. | flash.sampler |
| |
Retorna o "this" salvo de um fechamento de Método que você normalmente não pode visualizar em AS. | flash.sampler |
| |
Retorna o número de vezes que uma função de conjunto foi executada. | flash.sampler |
| |
Retorna o tamanho na memória de um objeto especificado quando usado com o Flash Player 9.0.115.0 ou versão posterior de depuração. | flash.sampler |
| |
Verifique para consultar se uma propriedade está definida pela função get/set. | flash.sampler |
| |
Para o processo de amostragem momentaneamente. | flash.sampler |
| |
Diz à amostra se deve criar NewObjectSamples para alocações internas do Flash Player. | flash.sampler |
| |
Define uma função de retorno de chamada para o sampleador - esta função será invocada quando a corrente de amostra estiver quase esgotada. | flash.sampler |
| |
Inicia o processo de coleta de uso de memória dos objetos Sample. | flash.sampler |
| |
Finaliza o processo de coleta de uso de memória dos objetos Sample e libera os recursos dedicados ao processo de amostragem. | flash.sampler |
public function clearSamples():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Exclui o conjunto atual de objetos Sample. Esse método é chamado normalmente depois da chamada de getSamples()
e percorre os objetos Sample. Somente para a versão de depurador do Flash Player.
Elementos da API relacionados
public function getGetterInvocationCount(obj:Object, qname:QName):Number
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna o número de vezes que uma função get foi executada. Use isGetterSetter()
para verificar se você tem a função get/set antes de usar getGetterInvocationCount()
. Somente para a versão de depurador do Flash Player.
Parâmetros
| obj:Object — Uma instância de método ou uma classe.
|
|
| qname:QName — Se qname for indefinido retornará o número de iterações da função constructor.
|
Retorna | Number — O número de vezes que um método get foi executado.
|
Elementos da API relacionados
public function getInvocationCount(obj:Object, qname:QName):Number
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna o número de vezes que um método foi executado. Se o parâmetro obj
for uma Classe e o parâmetro qname
for indefinido
o método retornará o número de iterações da função constructor. Somente para a versão de depurador do Flash Player.
Parâmetros
| obj:Object — Uma instância de método ou uma classe. Uma classe pode ser usada para obter a conta de invocação das funções da instância quando um método não está disponível. Se obj for undefined , este método retorna a contagem da função do escopo do pacote chamado pelo qname .
|
|
| qname:QName — Se qname for indefinido retornará o número de iterações da função constructor.
|
Retorna | Number — O número de vezes que um método foi executado.
|
Exemplo (
Como usar este exemplo )
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
Expõe o escopo léxico de uma Função para que os objetos de escopo capturados (inclusive objetos de ativação e com escopos) sejam vistos pelo perfilador como retidos pela instância Função.
Parâmetros
Retorna | Array — Uma matriz que contém todos os elementos do escopo léxico
|
public function getMasterString(str:String):String
Versão da linguagem: | ActionScript 3.0 |
Retorna a string da página-mestre da qual esta string depende, ou null se esta string não depender de outra. Por exemplo, se você chamar String.substr ()
, a string retornada muitas vezes será efetivamente implementada apenas como um indicador na string original, por questão de eficiência. No uso normal, isto é um detalhe de implementação que não é visível ao usuário; contudo, pode ser confuso ao usar um perfilador para analisar o consumo de memória do seu programa, porque a string pode ser mostrada ocupando menos memória do que seria necessário para o valor da string. Além disso, uma string poderia ser retida na memória somente por ser a página-mestre de outras strings. getMasterString()
permite aos perfiladores mostrar ao usuário um gráfico exato de dependências de strings.
Parâmetros
Retorna | String — A string da qual a string passada depende, ou null se a string passada não depender de outra.
|
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna um objeto contendo todos os membros de um objeto especificado, incluindo os membros privados. É possível percorrer os objetos retornados para consultar todos os valores. Esse método é semelhante ao método flash.utils.describeType(), mas também permite ver os membros privados e pular etapas intermediárias na criação de um objeto XML. Somente para a versão de depurador do Flash Player.
Parâmetros
| o:Object — O objeto para análise.
|
|
| instanceNames:Boolean (default = false ) — Se o objeto é uma Classe e instanceNames for true, reporte os nomes da instância como se houvesse uma classe em vez de nomes de membros da classe.
|
Retorna | Object — Um Objeto o qual é necessário percorrer com para cada.em loop para recuperar os QNames para cada propriedade.
|
Elementos da API relacionados
Exemplo (
Como usar este exemplo )
O exemplo a seguir usa o método
getMemberNames()
para analisar um objeto e exibir as propriedades
buttonMode
,
filters
e
dispatchEvent
de seus membros. Para usar o gerador de perfil de memória, é necessário ter a versão 9.0.115.0 ou posterior do depurador do Flash Player instalada.
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna o número de amostras coletadas. Somente para a versão de depurador do Flash Player.
Retorna | Number — Um iterador de instâncias Sample.
|
Elementos da API relacionados
public function getSamples():Object
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna um objeto de ocorrências de Sample de uso de memória da última sessão de amostragem. Somente para a versão de depurador do Flash Player.
Retorna | Object — Um iterador de instâncias Sample.
|
Elementos da API relacionados
public function getSavedThis(obj:Function):Object
Retorna o "this" salvo de um fechamento de Método que você normalmente não pode visualizar em AS.
Parâmetros
| obj:Function — Uma instância MethodClosure
|
Retorna | Object — Um objeto que é o "this" de MethodClosure
|
public function getSetterInvocationCount(obj:Object, qname:QName):Number
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna o número de vezes que uma função de conjunto foi executada. Use isGetterSetter()
para verificar se você tem a função get/set antes de usar getSetterInvocationCount()
. Somente para a versão de depurador do Flash Player.
Parâmetros
| obj:Object — Uma instância de método ou uma classe.
|
|
| qname:QName — Se qname for indefinido retornará o número de iterações da função constructor.
|
Retorna | Number — O número de vezes que um método foi executado.
|
Elementos da API relacionados
public function getSize(o:*):Number
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Retorna o tamanho na memória de um objeto especificado quando usado com o Flash Player 9.0.115.0 ou versão posterior de depuração. Se for usado com um Flash Player que não seja a versão de depuração, o método retornará 0
.
Parâmetros
| o:* — O objeto para analisar o uso de memória.
|
Retorna | Number — A contagem de bytes de memória usada pelo objeto especificado.
|
Exemplo (
Como usar este exemplo )
O exemplo a seguir usa
startSampling()
e
pauseSampling
para coletar objetos Sample. O exemplo então percorre os objetos Sample para valores
id
e tamanhos. Depois de chamar
System.gc()
para parar o processo atual, o exemplo compara os objetos deletedObjectSample aos valores
id
originais e exibe os tamanhos. Para usar o gerador de perfil de memória, é necessário ter a versão 9.0.115.0 ou posterior do depurador do Flash Player instalada.
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Verifique para consultar se uma propriedade está definida pela função get/set. Para usar getInvocationCount()
em uma função get/set de uma propriedade, primeiro chame isGetterSetter()
para verificar se é uma função get/set e use getSetterInvocationCount
ou getGetterInvocationCount
para obter as respectivas contagens. Somente para a versão de depurador do Flash Player.
Parâmetros
| obj:Object — Uma instância de método ou uma classe.
|
|
| qname:QName — Se qname for indefinido retornará o número de iterações da função constructor.
|
Retorna | Boolean — Um valor booliano indica que a propriedade foi definida por uma função get/set (true ) ou não (false ).
|
Elementos da API relacionados
Exemplo (
Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Para o processo de amostragem momentaneamente. Reinicie o processo de amostragem usando startSampling()
. Somente para a versão de depurador do Flash Player.
Elementos da API relacionados
public function sampleInternalAllocs(b:Boolean):void
Versão da linguagem: | ActionScript 3.0 |
Diz à amostra se deve criar NewObjectSamples para alocações internas do Flash Player. Se isto for definido como verdadeiro, então cada alocação gerará um NewObjectSample. Estas alocações internas não terão um tipo, ou um referência ao Objeto. Eles terão o rastreamento de pilha ActionScript que provocou a alocação. Define como falso, que só coleta alocações de objetos ActionScript.
Parâmetros
public function setSamplerCallback(f:Function):void
Versão da linguagem: | ActionScript 3.0 |
Define uma função de retorno de chamada para o sampleador - esta função será invocada quando a corrente de amostra estiver quase esgotada. Isto deve ser usado para processar amostras antes que o buffer de amostra seja preenchido. o pauseSampling será chamado antes que o retorno de chamada ocorra, e startSampling será chamado depois que o retorno de chamada for realizado.
Parâmetros
public function startSampling():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Inicia o processo de coleta de uso de memória dos objetos Sample. Somente para a versão de depurador do Flash Player.
Elementos da API relacionados
Exemplo (
Como usar este exemplo )
O exemplo a seguir inicia o processo de amostragem e percorre os objetos coletados. Para usar o gerador de perfil de memória, é necessário ter a versão 9.0.115.0 ou posterior do depurador do Flash Player.
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9.0.115.0 |
Finaliza o processo de coleta de uso de memória dos objetos Sample e libera os recursos dedicados ao processo de amostragem. O processo de amostragem é iniciado com startSampling()
. Somente para a versão de depurador do Flash Player.
Elementos da API relacionados
© 2015 Adobe Systems Incorporated. All rights reserved.
Wed Jun 13 2018, 11:27 AM Z