Este paquete lo utiliza el agente creador de perfiles distribuido con Adobe Flash Builder y se proporciona para su uso, personalizando el agente creador de perfiles o generando sus propias pruebas de memoria. Utilice el método
startSampling()
y la versión 9.0.115.0 o posterior del depurador de Flash Player, para tomar muestras del uso de la memoria. A continuación, use el método
getSamples()
para recuperar las muestras del uso de la memoria. Las muestras revelan el uso de la memoria de distintos intervalos de una aplicación en ejecución. A continuación, utilice los demás métodos del paquete
flash.sampler
para analizar la información del uso de la memoria.
Nota: si crea su propio agente de perfiles personalizados, cargue previamente el archivo SWF del agente definiendo la propiedad PreloadSwf
mm.cfg del archivo
PreloadSwf=C:/Documents and Settings/username/testingagent.swf?aparam=asetting
Cada archivo SWF de agente precargado cuenta con su propio dominio de seguridad y se ejecuta en un entorno limitado de seguridad distinto al del archivo SWF principal del que se hace el perfil. Para ejecutar los métodos del paquete flash.sampler
, el archivo SWF agente debe estar en una ruta de archivo localTrusted (consulte el Centro de seguridad).
Métodos públicos
| Función | Definido por |
---|
| |
Borra el conjunto activo de objetos Sample. | flash.sampler |
| |
Devuelve el número de veces que se ha ejecutado una función get. | flash.sampler |
| |
Devuelve el número de veces que se ha ejecutado un método. | flash.sampler |
| |
Expone el ámbito léxico de una función para que los objetos del ámbito capturados (incluidos los objetos activation y los ámbitos with) se vean en el analizador como conservados por la instancia de Function. | flash.sampler |
| |
Devuelve la cadena maestra de la que depende esta cadena, o null si la cadena no depende de otra cadena. | flash.sampler |
| |
Devuelve un objeto con todos los miembros del objeto especificado, incluidos los miembros privados. | flash.sampler |
| |
Devuelve el número de muestras recopiladas. | flash.sampler |
| |
Devuelve un objeto de instancias Sample de uso de memoria de la última sesión de muestreo. | flash.sampler |
| |
Devuelve el "this" guardado desde un cierre del método que normalmente no puede ver desde AS. | flash.sampler |
| |
Devuelve el número de veces que se ha ejecutado una función set. | flash.sampler |
| |
Devuelve el tamaño en memoria de un objeto especificado si se utiliza la versión del depurador de Flash Player 9.0.115.0 o una versión posterior. | flash.sampler |
| |
Comprueba si existe una propiedad definida por una función get/set. | flash.sampler |
| |
Detiene momentáneamente el proceso de muestreo. | flash.sampler |
| |
Indica al muestreador si debe crear un objeto NewObjectSamples para asignaciones internas desde Flash Player. | flash.sampler |
| |
Define una función callback para la muestra: esta función se llamará cuando el flujo de la muestra casi se haya agotado. | flash.sampler |
| |
Inicia el proceso de recolección de objetos Sample de uso de memoria. | flash.sampler |
| |
Finaliza el proceso de recopilación de objetos Sample de uso de memoria y libera los recursos dedicados al proceso de muestreo. | flash.sampler |
public function clearSamples():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Borra el conjunto activo de objetos Sample. Se suele llamar a este método tras haber llamado a getSamples()
y haber iterado sobre los objetos Sample. Sólo para la versión del depurador de Flash Player.
Elementos de API relacionados
public function getGetterInvocationCount(obj:Object, qname:QName):Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve el número de veces que se ha ejecutado una función get. Utilice isGetterSetter()
para comprobar que dispone de una función get/set antes de utilizar getGetterInvocationCount()
. Sólo para la versión del depurador de Flash Player.
Parámetros
| obj:Object — Instancia de método o clase.
|
|
| qname:QName — Si qname es undefined , devuelve el número de iteraciones de la función del constructor.
|
Valor devuelto | Number — Número de veces que se ha ejecutado un método get.
|
Elementos de API relacionados
public function getInvocationCount(obj:Object, qname:QName):Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve el número de veces que se ha ejecutado un método. Si el parámetro obj
es un objeto Class y el parámetro qname
es undefined
, este método devuelve el número de iteraciones de la función del constructor. Sólo para la versión del depurador de Flash Player.
Parámetros
| obj:Object — Instancia de método o clase. Si no hay disponible ninguna instancia del método, se puede utilizar una clase para obtener el recuento de invocaciones de las funciones de la instancia. Si obj es undefined , este método devuelve el recuento de la función del paquete nombrada por qname .
|
|
| qname:QName — Si qname es undefined , devuelve el número de iteraciones de la función del constructor.
|
Valor devuelto | Number — Número de veces que se ha ejecutado un método.
|
Ejemplo (
Cómo utilizar este ejemplo )
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
Expone el ámbito léxico de una función para que los objetos del ámbito capturados (incluidos los objetos activation y los ámbitos with) se vean en el analizador como conservados por la instancia de Function.
Parámetros
Valor devuelto | Array — Un conjunto con todos los elementos del ámbito léxico
|
public function getMasterString(str:String):String
Versión del lenguaje: | ActionScript 3.0 |
Devuelve la cadena maestra de la que depende esta cadena, o null si la cadena no depende de otra cadena. Por ejemplo, si llama a String.substr()
, la cadena devuelta a menudo se implementan sólo como un puntero de la cadena original para obtener un resultado más eficaz. En uso normal, éste es un detalle de implementación que no es visible para el usuario; sin embargo, puede resultar confuso cuando se utiliza un visor para analizar el consumo de memoria del programa, ya que puede parecer que la cadena consume menos memoria de la que se necesitaría para el valor de la cadena. Además, una cadena se puede conservar en la memoria únicamente por ser la cadena maestra para otras cadenas. getMasterString()
permite a los analizadores mostrar al usuario un gráfico preciso con las dependencias de las cadenas.
Parámetros
Valor devuelto | String — La cadena de la que depende la cadena transferida, o null si la cadena transferida no depende de otra cadena
|
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve un objeto con todos los miembros del objeto especificado, incluidos los miembros privados. Seguidamente, puede iterar sobre el objeto devuelto para ver todos los valores. Este método es similar al método flash.utils.describeType(), sólo que también permite ver los miembros privados y omite el paso intermedio de tener que crear un objeto XML. Sólo para la versión del depurador de Flash Player.
Parámetros
| o:Object — Objeto que se va a analizar.
|
|
| instanceNames:Boolean (default = false ) — Si el objeto es de tipo Class e instanceNames es true, se informa sobre los nombres de las instancias como si se tratara de instancias de nombres de miembros de la clase.
|
Valor devuelto | Object — Objeto que debe iterarse con un bucle for each..in para recuperar los objetos QNames de cada propiedad.
|
Elementos de API relacionados
Ejemplo (
Cómo utilizar este ejemplo )
En el siguiente ejemplo se utiliza el método
getMemberNames()
para analizar un objeto y mostrar las propiedades
buttonMode
,
filters
y
dispatchEvent
de sus miembros. Para utilizar el visor de memoria, debe tener instalada la versión del depurador Flash Player 9.0.115.0 o una versión posterior.
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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve el número de muestras recopiladas. Sólo para la versión del depurador de Flash Player.
Valor devuelto | Number — Iterador de instancias de Sample.
|
Elementos de API relacionados
public function getSamples():Object
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve un objeto de instancias Sample de uso de memoria de la última sesión de muestreo. Sólo para la versión del depurador de Flash Player.
Valor devuelto | Object — Iterador de instancias de Sample.
|
Elementos de API relacionados
public function getSavedThis(obj:Function):Object
Devuelve el "this" guardado desde un cierre del método que normalmente no puede ver desde AS.
Parámetros
| obj:Function — Una instancia de MethodClosure
|
Valor devuelto | Object — Un objeto que es el "this" de MethodClosure
|
public function getSetterInvocationCount(obj:Object, qname:QName):Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve el número de veces que se ha ejecutado una función set. Utilice isGetterSetter()
para comprobar que dispone de una función get/set antes de utilizar getSetterInvocationCount()
. Sólo para la versión del depurador de Flash Player.
Parámetros
| obj:Object — Instancia de método o clase.
|
|
| qname:QName — Si qname es undefined , devuelve el número de iteraciones de la función del constructor.
|
Valor devuelto | Number — Número de veces que se ha ejecutado un método set.
|
Elementos de API relacionados
public function getSize(o:*):Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Devuelve el tamaño en memoria de un objeto especificado si se utiliza la versión del depurador de Flash Player 9.0.115.0 o una versión posterior. Si no se utiliza una versión del depurador de Flash Player, este método devuelve 0
.
Parámetros
| o:* — Objeto con que se va a analizar el uso de memoria.
|
Valor devuelto | Number — Recuento de bytes de memoria utilizada por el objeto especificado.
|
Ejemplo (
Cómo utilizar este ejemplo )
En el siguiente ejemplo se utilizan los métodos
startSampling()
y
pauseSampling
para recopilar objetos Sample. Posteriormente, el ejemplo itera sobre los objetos Sample para los valores y tamaños de
id
. Tras llamar a
System.gc()
para detener el proceso activo, el ejemplo compara los objetos deletedObjectSample con los valores de
id
originales y muestra su tamaños. Para el utilizar el visor de memoria, debe tener instalada la versión 9.0.115.0 o posterior del depurador de Flash Player.
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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Comprueba si existe una propiedad definida por una función get/set. Si quiere utilizar getInvocationCount()
en una función get/set para una propiedad, primero llame a isGetterSetter()
para verificar si es una función get/set; seguidamente, utilice getSetterInvocationCount
o getGetterInvocationCount
para obtener los recuentos correspondientes. Sólo para la versión del depurador de Flash Player.
Parámetros
| obj:Object — Instancia de método o clase.
|
|
| qname:QName — Si qname es undefined , devuelve el número de iteraciones de la función del constructor.
|
Valor devuelto | Boolean — Valor booleano que indica que la propiedad está definida por una función get/set (true ) o no (false ).
|
Elementos de API relacionados
Ejemplo (
Cómo utilizar este ejemplo )
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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Detiene momentáneamente el proceso de muestreo. Reinicia el proceso de muestreo utilizando startSampling()
. Sólo para la versión del depurador de Flash Player.
Elementos de API relacionados
public function sampleInternalAllocs(b:Boolean):void
Versión del lenguaje: | ActionScript 3.0 |
Indica al muestreador si debe crear un objeto NewObjectSamples para asignaciones internas desde Flash Player. Si se establece en true, todas las asignaciones generarán un objeto NewObjectSample. Estas asignaciones internas no tendrán ningún tipo ni referencia al objeto. Contendrán el seguimiento de la pila de ActionScript que ha activado la asignación. El valor predeterminado es false y sólo recopila asignaciones para objetos de ActionScript.
Parámetros
public function setSamplerCallback(f:Function):void
Versión del lenguaje: | ActionScript 3.0 |
Define una función callback para la muestra: esta función se llamará cuando el flujo de la muestra casi se haya agotado. Esto se debe utilizar para procesar muestras antes de que se llene el búfer de las muestras. Se llamará a pauseSampling antes de que se llame a la función callback y se llamará a startSampling después de haber ejecutado la función callback.
Parámetros
public function startSampling():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Inicia el proceso de recolección de objetos Sample de uso de memoria. Sólo para la versión del depurador de Flash Player.
Elementos de API relacionados
Ejemplo (
Cómo utilizar este ejemplo )
En el siguiente ejemplo se inicia el proceso de muestreo y se itera sobre los objetos recopilados. Para el utilizar el visor de memoria, debe tener instalada la versión 9.0.115.0 o posterior del depurador de 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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0 |
Finaliza el proceso de recopilación de objetos Sample de uso de memoria y libera los recursos dedicados al proceso de muestreo. Para iniciar el proceso de muestreo, utilice startSampling()
. Sólo para la versión del depurador de Flash Player.
Elementos de API relacionados
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 02:28 PM Z