Det här paketet används av profileringsagenten som distribueras med Adobe Flash Builder och är avsett att användas när du anpassar profileringsagenten eller skapar egna minnestester. Använd metoden
startSampling()
och felsökningsversion 9.0.115.0 eller senare av Flash Player för att samla in prover på minnesanvändning. Använd sedan metoden
getSamples()
för att hämta minnesanvändningsproverna. Proverna avslöjar minnesanvändningen i distinkta intervall när ett program körs. Använd sedan de andra metoderna i paketet
flash.sampler
för att analysera informationen om minnesanvändningen.
Obs! Om du vill skapa en egen anpassad profileringsagent läser du in SWF-agentfilen i förväg genom att ange egenskapen PreloadSwf
i filen mm.cfg:
PreloadSwf=C:/Documents and Settings/användarnamn/testingagent.swf?aparam=asetting
Varje förinläst SWF-agentfil har en egen säkerhetsdomän och körs i en separat säkerhetssandlåda åtskild från den SWF-huvudfil som profileras. För att metoderna i paketet flash.sampler
ska kunna köras måste SWF-agentfilen vara i en localTrusted-sökväg (se rapporten Security Center).
Publika metoder
| Funktion | Definieras med |
---|
| |
Raderar den aktuella uppsättningen Sample-objekt. | flash.sampler |
| |
Returnerar det antal gånger en get-funktion har körts. | flash.sampler |
| |
Returnerar det antal gånger en metod har körts. | flash.sampler |
| |
Visar det lexikala omfånget för en funktion så att hämtade omfångsobjekt (inklusive aktiveringsobjekt och med omfång) ses av profileraren som om den hålls av Function-instansen. | flash.sampler |
| |
Returnerar huvudsträngen som denna sträng är beroende av eller null om strängen inte är beroende av någon annan sträng. | flash.sampler |
| |
Returnerar ett objekt som innehåller alla medlemmar i ett angivet objekt, inklusive privata medlemmar. | flash.sampler |
| |
Returnerar antalet insamlade samplingar. | flash.sampler |
| |
Returnerar ett objekt med Sample-instanser för minnesanvändning från den senaste samplingssessionen. | flash.sampler |
| |
Returnerar sparad "this" från en stängningsmetod som du vanligtvis inte kan se från AS. | flash.sampler |
| |
Returnerar det antal gånger en set-funktion har körts. | flash.sampler |
| |
Returnerar storlek i minnet för ett angivet objekt vid användning med felsökningsversionen av Flash Player 9.0.115.0 eller senare. | flash.sampler |
| |
Kontrollerar om en egenskap definieras av en get/set-funktion. | flash.sampler |
| |
Stoppar samplingsprocessen tillfälligt. | flash.sampler |
| |
Anger om NewObjectSamples ska skapas för interna tilldelningar från Flash Player. | flash.sampler |
| |
Anger en återanropsfunktion för samplern. Den här funktionen anropas när strömmen är nästan slut. | flash.sampler |
| |
Påbörjar insamlingen av Sample-objekt för minnesanvändning. | flash.sampler |
| |
Avslutar insamlingen av Sample-objekt för minnesanvändning och frigör resurser som används för samplingsprocessen. | flash.sampler |
public function clearSamples():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Raderar den aktuella uppsättningen Sample-objekt. Den här metoden anropas vanligen efter att getSamples()
har anropats och itereras över Sample-objekten. Endast för felsökningsversionen av Flash Player.
Relaterade API-element
public function getGetterInvocationCount(obj:Object, qname:QName):Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar det antal gånger en get-funktion har körts. Använd isGetterSetter()
för att kontrollera att du har en get/set-funktion innan du använder getGetterInvocationCount()
. Endast för felsökningsversionen av Flash Player.
Parametrar
| obj:Object — En metodinstans eller en klass.
|
|
| qname:QName — Om qname är undefined returneras antalet itereringar för konstruktorfunktionen.
|
Returnerar | Number — Det antal gånger en get-metod har körts.
|
Relaterade API-element
public function getInvocationCount(obj:Object, qname:QName):Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar det antal gånger en metod har körts. Om parametern obj
är en klass och parametern qname
är undefined
returnerar den här metoden antalet itereringar för konstruktorfunktionen. Endast för felsökningsversionen av Flash Player.
Parametrar
| obj:Object — En metodinstans eller en klass. En klass kan användas för att hämta antalet anrop för instansfunktioner när en metodinstans inte är tillgänglig. Om obj är undefined returnerar den här metoden antalet för den package-scoped-funktion som namnges med qname .
|
|
| qname:QName — Om qname är undefined returneras antalet itereringar för konstruktorfunktionen.
|
Returnerar | Number — Det antal gånger en metod har körts.
|
Exempel (
Så här använder du exemplet )
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
Visar det lexikala omfånget för en funktion så att hämtade omfångsobjekt (inklusive aktiveringsobjekt och med omfång) ses av profileraren som om den hålls av Function-instansen.
Parametrar
Returnerar | Array — En array som innehåller alla element i det lexikala omfånget
|
public function getMasterString(str:String):String
Språkversion: | ActionScript 3.0 |
Returnerar huvudsträngen som denna sträng är beroende av eller null om strängen inte är beroende av någon annan sträng. Om du till exempel anropar String.substr()
kommer, för att göra det enklare, den returnerade strängen ofta att implementeras bara som en pekare till den ursprungliga strängen. Vid normal användning är detta en implementation som inte visas för användarna, men den kan skapa förvirring när en profilerare används för att analysera programmets minnesförbrukning eftersom strängen kan visas som om den upptar mindre minne än vad som skulle behövas för strängens värde. Dessutom kan en sträng hållas kvar i minnet enbart på grund av att den är huvudsträng för andra strängar. Med getMasterString()
kan profilerare visa användaren ett mer korrekt diagram över strängberoenden.
Parametrar
Returnerar | String — Strängen som den skickade strängen är beroende av eller null om den skickade strängen inte är beroende av någon annan sträng.
|
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar ett objekt som innehåller alla medlemmar i ett angivet objekt, inklusive privata medlemmar. Du kan sedan iterera över det returnerade objektet för att visa alla värden. Den här metoden liknar metoden flash.utils.describeType() men tillåter dessutom att du visar privata medlemmar och hoppar över mellansteget där ett XML-objekt skapas. Endast för felsökningsversionen av Flash Player.
Parametrar
| o:Object — Det objekt som ska analyseras.
|
|
| instanceNames:Boolean (default = false ) — Om objektet är en klass och instanceNames är true rapporterar du instansnamnen som om objektet var en instans av klassen i stället för av klassens medlemsnamn.
|
Returnerar | Object — Ett objekt som du måste iterera över med en for each..in -slinga för att hämta QNames för varje egenskap.
|
Relaterade API-element
Exempel (
Så här använder du exemplet )
I följande exempel används metoden
getMemberNames()
för att analysera ett objekt och visa egenskaperna
buttonMode
,
filters
och
dispatchEvent
för dess medlemmar. Du måste ha felsökningsversionen av Flash Player 9.0.115.0 eller senare installerad för att kunna använda minnesprofilering.
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
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar antalet insamlade samplingar. Endast för felsökningsversionen av Flash Player.
Returnerar | Number — En iterator för Sample-instanser.
|
Relaterade API-element
public function getSamples():Object
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar ett objekt med Sample-instanser för minnesanvändning från den senaste samplingssessionen. Endast för felsökningsversionen av Flash Player.
Returnerar | Object — En iterator för Sample-instanser.
|
Relaterade API-element
public function getSavedThis(obj:Function):Object
Returnerar sparad "this" från en stängningsmetod som du vanligtvis inte kan se från AS.
Parametrar
Returnerar | Object — Ett objekt som är "this" i stängningsmetoden
|
public function getSetterInvocationCount(obj:Object, qname:QName):Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar det antal gånger en set-funktion har körts. Använd isGetterSetter()
för att kontrollera att du har en get/set-funktion innan du använder getSetterInvocationCount()
. Endast för felsökningsversionen av Flash Player.
Parametrar
| obj:Object — En metodinstans eller en klass.
|
|
| qname:QName — Om qname är undefined returneras antalet itereringar för konstruktorfunktionen.
|
Returnerar | Number — Det antal gånger en set-metod har körts.
|
Relaterade API-element
public function getSize(o:*):Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Returnerar storlek i minnet för ett angivet objekt vid användning med felsökningsversionen av Flash Player 9.0.115.0 eller senare. När metoden används med någon annan version av Flash Player än felsökningsversionen returnerar den 0
.
Parametrar
| o:* — Det objekt vars minnesanvändning ska analyseras.
|
Returnerar | Number — Byteantal i minnet som används av det angivna objektet.
|
Exempel (
Så här använder du exemplet )
I följande exempel används
startSampling()
och
pauseSampling
för att samla in Sample-objekt. Därefter itereras exemplet över Sample-objekten för
id
-värden och storlekar. När
System.gc()
har anropats för att stoppa den aktuella processen jämför exemplet de borttagna deletedObjectSample-objekten med de ursprungliga
id
-värdena och visar deras storlek. Du måste ha felsökningsversionen av Flash Player 9.0.115.0 eller senare installerad för att kunna använda minnesprofilering.
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
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Kontrollerar om en egenskap definieras av en get/set-funktion. Om du vill använda getInvocationCount()
på en get/set-funktion för en egenskap anropar du först isGetterSetter()
för att kontrollera om det är en get/set-funktion. Därefter använder du antingen getSetterInvocationCount
eller getGetterInvocationCount
för att hämta respektive antal. Endast för felsökningsversionen av Flash Player.
Parametrar
| obj:Object — En metodinstans eller en klass.
|
|
| qname:QName — Om qname är undefined returneras antalet itereringar för konstruktorfunktionen.
|
Returnerar | Boolean — Ett booleskt värde som anger om egenskapen definieras av en get/set-funktion (true ) eller inte (false ).
|
Relaterade API-element
Exempel (
Så här använder du exemplet )
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
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Stoppar samplingsprocessen tillfälligt. Starta om samplingsprocessen med startSampling()
. Endast för felsökningsversionen av Flash Player.
Relaterade API-element
public function sampleInternalAllocs(b:Boolean):void
Språkversion: | ActionScript 3.0 |
Anger om NewObjectSamples ska skapas för interna tilldelningar från Flash Player. Om detta är true genererar varje tilldelning ett NewObjectSample. De här interna tilldelningarna har ingen typ eller referens till objektet. De har ActionScript-stackspårningen som utlöste tilldelningen. Får som standard värdet false, vilket bara samlar in tilldelningar för ActionScript-objekt.
Parametrar
public function setSamplerCallback(f:Function):void
Språkversion: | ActionScript 3.0 |
Anger en återanropsfunktion för samplern. Den här funktionen anropas när strömmen är nästan slut. Detta bör användas för att bearbeta samplingar innan samplingsbufferten fylls. pauseSampling anropas innan återanropet anropas, och startSampling anropas efter att återanropet har slutförts.
Parametrar
public function startSampling():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Påbörjar insamlingen av Sample-objekt för minnesanvändning. Endast för felsökningsversionen av Flash Player.
Relaterade API-element
Exempel (
Så här använder du exemplet )
I följande exempel initieras samplingsprocessen och itereras över de insamlade objekten. Du måste ha felsökningsversionen av Flash Player 9.0.115.0 eller senare för att kunna använda minnesprofilering.
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
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0 |
Avslutar insamlingen av Sample-objekt för minnesanvändning och frigör resurser som används för samplingsprocessen. Du startar samplingsprocessen med startSampling()
. Endast för felsökningsversionen av Flash Player.
Relaterade API-element
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 01:57 PM Z