ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: Pobieranie danych z serwera...
Pobieranie danych z serwera...
 

Pakiet flash.sampler 


Ten pakiet jest używany przez agenta optymalizacji dostarczanego razem z narzędziem Adobe Flash Builder i służy do dostosowywania działania tego agenta lub tworzenia własnych testów wykorzystania pamięci. Do pobierania próbek wykorzystania pamięci można użyć metody startSampling() oraz programu Flash Player z debugerem w wersji 9.0.115.0 lub nowszej. Metoda getSamples() umożliwia odczytywanie próbek wykorzystania pamięci. Próbki te zawierają informacje o wykorzystaniu pamięci zarejestrowane w regularnych odstępach czasu podczas działania aplikacji. Po zebraniu próbek można zastosować pozostałe metody z pakietu flash.sampler w celu przeanalizowania wykorzystania pamięci.

Uwaga: W przypadku utworzenia własnego agenta optymalizacji należy wstępnie załadować plik SWF agenta, ustawiając właściwość PreloadSwf w pliku mm.cfg:

PreloadSwf=C:/Documents and Settings/username/testingagent.swf?aparam=asetting

Każdy wstępnie załadowany plik SWF agenta ma własną domenę zabezpieczeń i działa w odrębnym obszarze izolowanym, innym niż obszar izolowany optymalizowanego pliku SWF. Aby było możliwe wykonywanie metod z pakietu flash.sampler, plik SWF agenta musi znajdować się w lokalnej zaufanej ścieżce plików (zobacz Centrum tematów pomocy).

Metody publiczne
 FunkcjaZdefiniowane przez
  
Usuwa aktualny zestaw obiektów Sample.
flash.sampler
  
Zwraca liczbę wykonań funkcji get.
flash.sampler
  
Zwraca liczbę wykonań metody.
flash.sampler
  
Wyraża zasięg leksykalny obiektu Function, aby obiekty w tym zasięgu (w tym obiekty aktywacji oraz zasięgi instrukcji with) były widoczne w programie profilującym jako zachowane przez wystąpienie klasy Function.
flash.sampler
  
Zwraca nadrzędny ciąg znaków, od którego zależy ten ciąg lub wartość null, jeśli ten ciąg nie zależy od żadnego innego ciągu znaków.
flash.sampler
  
getMemberNames(o:Object, instanceNames:Boolean = false):Object
Zwraca obiekt zawierający wszystkie elementy określonego obiektu, łącznie z elementami prywatnymi.
flash.sampler
  
Zwraca liczbę zgromadzonych próbek.
flash.sampler
  
Zwraca obiekt instancji Sample użycia pamięci z ostatniej sesji próbkowania.
flash.sampler
  
Zwraca zapisany obiekt "this" z zamknięcia metody (Method) — normalnie niewidoczny z poziomu kodu ActionScript.
flash.sampler
  
Zwraca liczbę wykonań zbioru funkcji.
flash.sampler
  
Zwraca wielkość określonego obiektu w pamięci, jeśli używany jest z programem Flash Player 9.0.115.0. lub późniejszą wersją z debugerem.
flash.sampler
  
Sprawdza, czy właściwość jest zdefiniowana przez funkcję get/set.
flash.sampler
  
Zatrzymuje na chwilę proces próbkowania.
flash.sampler
  
Informuje moduł próbkujący o tym, czy powinien utworzyć próbki NewObjectSamples dla wewnętrznych przydziałów z programu Flash Player.
flash.sampler
  
Ustawia funkcję wywołania zwrotnego dla modułu próbkującego — ta funkcja zostanie wywołana, gdy strumień próbek będzie niemal wyczerpany.
flash.sampler
  
Rozpoczyna proces gromadzenia obiektów Sample dotyczących wykorzystania pamięci.
flash.sampler
  
Kończy proces gromadzenia obiektów Sample dotyczących wykorzystania pamięci i zwalnia zasoby przeznaczone dla procesu próbkowania.
flash.sampler
Szczegół funkcji

clearSamples

()funkcja
public function clearSamples():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Usuwa aktualny zestaw obiektów Sample. Ta metoda jest zwykle wywoływana po wywołaniu metody getSamples() i wykonaniu iteracji dla obiektów Sample. Tylko dla wersji programu Flash Player z debugerem.

Powiązane elementy interfejsu API

getGetterInvocationCount

()funkcja 
public function getGetterInvocationCount(obj:Object, qname:QName):Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca liczbę wykonań funkcji get. Za pomocą metody isGetterSetter() można określić, czy dostępna jest funkcja get/set przed użyciem metody getGetterInvocationCount(). Tylko dla wersji programu Flash Player z debugerem.

Parametry

obj:Object — Instancja lub klasa metody.
 
qname:QName — Jeśli qname ma wartość undefined, zwrócona zostanie liczba iteracji funkcji konstruktora.

Zwraca
Number — Liczba wykonań metody get.

Powiązane elementy interfejsu API

getInvocationCount

()funkcja 
public function getInvocationCount(obj:Object, qname:QName):Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca liczbę wykonań metody. Jeśli parametr obj jest parametrem Class, a parametr qname ma wartość undefined, wówczas ta metoda zwraca liczbę iteracji funkcji konstruktora. Tylko dla wersji programu Flash Player z debugerem.

Parametry

obj:Object — Instancja lub klasa metody. Jeśli nie jest dostępna instancja metody, w celu uzyskania liczby funkcji instancji można użyć klasy. Jeśli wartość obj jest równa undefined, ta metoda zwraca liczbę funkcji ograniczonych do pakietu, których nazwy określa qname.
 
qname:QName — Jeśli właściwość qname ma wartość undefined, zwrócona zostanie liczba iteracji funkcji konstruktora.

Zwraca
Number — Liczba wykonań metody.

Przykład  ( Sposób korzystania z tego przykładu )

 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) { }
      
    }
}

getLexicalScopes

()funkcja 
public function getLexicalScopes(obj:Function):Array

Wyraża zasięg leksykalny obiektu Function, aby obiekty w tym zasięgu (w tym obiekty aktywacji oraz zasięgi słowa with) były widoczne w programie profilującym jako zachowane przez instancję Function.

Parametry

obj:Function — Funkcja

Zwraca
Array — Tablica zawierająca wszystkie elementy zakresu leksykalnego

getMasterString

()funkcja 
public function getMasterString(str:String):String

Wersja języka: ActionScript 3.0

Zwraca nadrzędny ciąg znaków, od którego zależy ten ciąg lub wartość null, jeśli ten ciąg nie zależy od żadnego innego ciągu znaków. Na przykład, jeśli wywołana zostanie metoda String.substr(), zostanie zwrócony ciąg znaków, który z uwagi na wydajność często będzie stanowił implementację wskaźnika do oryginalnego ciągu znaków. Jest to szczegół implementacji, który przy zwykłym korzystaniu nie jest widoczny dla użytkownika; może być jednak mylący w czasie używania programu profilującego do analizy zużycia pamięci programu, ponieważ ciąg znaków może przedstawiać mniejszą wielkość w pamięci niż wielkość wymagana dla wartości ciągu znaków. Ponadto ciąg znaków może być przechowywany w pamięci wyłącznie dlatego, że jest nadrzędny w stosunku do innych ciągów znaków. Metoda getMasterString() umożliwia programom profilującym wyświetlanie użytkownikowi dokładnego diagramu zależności ciągów znaków.

Parametry

str:String — Ciąg znaków

Zwraca
String — Ciąg znaków, od którego zależy przekazany ciąg, lub wartość null, jeśli przekazany ciąg nie zależy od żadnego innego ciągu znaków

getMemberNames

()funkcja 
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca obiekt zawierający wszystkie elementy określonego obiektu, łącznie z elementami prywatnymi. Następnie można wykonać iteracje dla zwróconego obiektu w celu wyświetlenia wszystkich wartości. Ta metoda działa podobnie do metody flash.utils.describeType(), ale umożliwia również wyświetlanie elementów prywatnych i pomija bezpośredni krok tworzenia obiektu XML. Tylko dla wersji programu Flash Player z debugerem.

Parametry

o:Object — Obiekt przeznaczony do analizy.
 
instanceNames:Boolean (default = false) — Jeśli obiektem jest Class, a właściwość instanceNames ma wartość true, należy zgłosić nazwy instancji w taki sposób, jakby o było instancją klasy — zamiast nazw elementów klasy.

Zwraca
Object — Object, dla którego należy wykonywać iteracje w pętli for each..in w celu pobrania wartości QNames dla każdej właściwości.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W poniższym przykładzie zastosowano metodę getMemberNames() w celu analizowania obiektu i wyświetlania właściwości buttonMode, filters i dispatchEvent jego elementów. W celu użycia programu profilującego pamięć wymagane jest zainstalowanie programu Flash Player w wersji 9.0.115.0 z debugerem lub w wersji późniejszej.
 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);

    }
    }
}

getSampleCount

()funkcja 
public function getSampleCount():Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca liczbę zgromadzonych próbek. Tylko dla wersji debugera programu Flash Player.

Zwraca
Number — Iterator instancji Sample.

Powiązane elementy interfejsu API

getSamples

()funkcja 
public function getSamples():Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca obiekt instancji Sample użycia pamięci z ostatniej sesji próbkowania. Tylko dla wersji debugera programu Flash Player.

Zwraca
Object — Iterator wystąpień klasy Sample.

Powiązane elementy interfejsu API

getSavedThis

()funkcja 
public function getSavedThis(obj:Function):Object

Zwraca zapisany obiekt "this" z zamknięcia metody (Method) — normalnie niewidoczny z poziomu kodu AS.

Parametry

obj:Function — Instancja MethodClosure

Zwraca
Object — Obiekt "this" obiektu MethodClosure.

getSetterInvocationCount

()funkcja 
public function getSetterInvocationCount(obj:Object, qname:QName):Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca liczbę wykonań zbioru funkcji. Za pomocą metody isGetterSetter() można określić, czy dostępna jest funkcja get/set przed użyciem metody getSetterInvocationCount(). Tylko dla wersji programu Flash Player z debugerem.

Parametry

obj:Object — Instancja lub klasa metody.
 
qname:QName — Jeśli qname ma wartość undefined, zwrócona zostanie liczba iteracji funkcji konstruktora.

Zwraca
Number — Liczba wykonań zbioru metod.

Powiązane elementy interfejsu API

getSize

()funkcja 
public function getSize(o:*):Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zwraca wielkość określonego obiektu w pamięci, jeśli używany jest z programem Flash Player 9.0.115.0. lub późniejszą wersją z debugerem. Jeśli używany jest z programem Flash Player, który nie zawiera debugera, ta metoda zwraca 0.

Parametry

o:* — Obiekt przeznaczony do analizowania wykorzystania pamięci.

Zwraca
Number — Liczba bajtów pamięci używana przez określony obiekt.

Przykład  ( Sposób korzystania z tego przykładu )

W poniższym przykładzie przedstawiono użycie metod startSampling() i pauseSampling w celu gromadzenia obiektów Sample. Następnie w przykładzie wykonywane są iteracje dla obiektów Sample dla wartości id i rozmiarów. Po wywołaniu metody System.gc() w celu zatrzymania bieżącego procesu (w przykładzie) wykonywane jest porównanie obiektów deletedObjectSample z oryginalnymi wartościami id oraz wyświetlane są ich wielkości. W celu użycia programu profilującego pamięć wymagane jest zainstalowanie programu Flash Player 9.0.115.0 w wersji z debugerem lub w wersji późniejszej.
 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);
    }      
      }       

    }
  }
}

isGetterSetter

()funkcja 
public function isGetterSetter(obj:Object, qname:QName):Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Sprawdza, czy właściwość jest zdefiniowana przez funkcję get/set. Jeśli użytkownik chce użyć metody getInvocationCount() w funkcji get/set dla właściwości, najpierw należy wywołać metodę isGetterSetter() w celu sprawdzenia, czy jest to funkcja get/set — następnie należy użyć metody getSetterInvocationCount lub getGetterInvocationCount w celu uzyskania odpowiednich liczb. Tylko dla wersji programu Flash Player z debugerem.

Parametry

obj:Object — Instancja lub klasa metody.
 
qname:QName — Jeśli qname ma wartość undefined, zwrócona zostanie liczba iteracji funkcji konstruktora.

Zwraca
Boolean — Wartość typu Boolean, która wskazuje, czy właściwość jest zdefiniowana przez funkcję get/set (true) czy nie jest (false).

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

 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) { }
      
    }
}

pauseSampling

()funkcja 
public function pauseSampling():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Zatrzymuje na chwilę proces próbkowania. Za pomocą metody startSampling() można zrestartować proces próbkowania. Tylko dla wersji programu Flash Player z debugerem.

Powiązane elementy interfejsu API

sampleInternalAllocs

()funkcja 
public function sampleInternalAllocs(b:Boolean):void

Wersja języka: ActionScript 3.0

Informuje moduł próbkujący o tym, czy powinien utworzyć próbki NewObjectSamples dla wewnętrznych przydziałów z programu Flash Player. Jeśli ustawiona jest wartość true, wówczas każdy przydział wygeneruje obiekt NewObjectSample. Te wewnętrzne przydziały nie będą miały typu i nie będą odwoływać się do obiektu Object. Będą zawierały stos wywołań ActionScript, który wywołał przydzielanie. Domyślnym ustawieniem jest false, co powoduje gromadzenie przydziałów tylko dla obiektów ActionScript.

Parametry

b:Boolean

setSamplerCallback

()funkcja 
public function setSamplerCallback(f:Function):void

Wersja języka: ActionScript 3.0

Ustawia funkcję wywołania zwrotnego dla modułu próbkującego — ta funkcja zostanie wywołana, gdy strumień próbek będzie niemal wyczerpany. Ta funkcja powinna być używana do przetwarzania próbek zanim dojdzie do zapełnienia buforu próbek. Metoda pauseSampling zostanie wywołana przed wywołaniem zwrotnym, a metoda startSampling zostanie wywołana po wykonaniu wywołania zwrotnego.

Parametry

f:Function

startSampling

()funkcja 
public function startSampling():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Rozpoczyna proces gromadzenia obiektów Sample dotyczących wykorzystania pamięci. Tylko dla wersji programu Flash Player z debugerem.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W poniższym przykładzie inicjowany jest proces próbkowania i wykonywane są iteracje dla zgromadzonych obiektów. W celu użycia programu profilującego pamięć wymagany jest program Flash Player 9.0.115.0 w wersji z debugerem lub w wersji późniejszej.
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)
        }
    }
}

stopSampling

()funkcja 
public function stopSampling():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0

Kończy proces gromadzenia obiektów Sample dotyczących wykorzystania pamięci i zwalnia zasoby przeznaczone dla procesu próbkowania. Proces próbkowania można rozpocząć za pomocą metody startSampling(). Tylko dla wersji programu Flash Player z debugerem.

Powiązane elementy interfejsu API

[ X ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.