Главная / Action Script 3

Этот пакет используется профилирующим агентом, поставляемым с Adobe Flex Builder, который позволяет производить настройку агента или создавать собственные тесты использования памяти. Для сбора сведений об использовании памяти используйте метод startSampling() и отладчик Flash Player версии Update 3 или новее. Используйте метод getSamples() для сбора сведений об использовании памяти. Эти сведения отражают уровень использования памяти по мере работы приложения. Для анализа собранных сведений используйте прочие методы из пакета flash.sampler.

Примечание. При создании собственного агента профилирования следует предварительно загрузить SWF-файл агента, путем настройки свойства PreloadSwf в файле mm.cfg:

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

Каждый предварительно загружаемый SWF-файл агента имеет свой собственный домен безопасности и выполняется в определенной защищенной среде отдельно от основного профилируемого SWF-файла. Чтобы задействовать методы пакета flash.sampler, SWF-файл агента должен находиться в месте localTrusted (см. в документе Безопасность Flash Player 9).

Общедоступные методы
 ФункцияОпределено
  
Удаляет текущий набор объектов Sample.
flash.sampler
  
Возвращает число, указывающее сколько раз была выполнена функция получения.
flash.sampler
  
Возвращает число, указывающее сколько раз был выполнен метод.
flash.sampler
  
getMemberNames(o:Object, instanceNames:Boolean = false):Object
Возвращается объект, содержащий все члены указанного объекта, включая частные члены.
flash.sampler
  
Возвращает число собранных образцов.
flash.sampler
  
Возвращает объект с экземплярами Sample, содержащими данные об использовании памяти для последнего сеанса взятия образцов.
flash.sampler
  
Возвращает число, указывающее сколько раз была выполнена функция установки.
flash.sampler
  
Возвращает размер, занимаемый указанным объектом в памяти, при использовании его в проигрывателе Flash Player 9.0.115.0 или более поздних отладочных версиях.
flash.sampler
  
Выполняется проверка, позволяющая увидеть, что свойство определено с помощью функции получения/установки.
flash.sampler
  
Немедленно завершает обработку образцов.
flash.sampler
  
Начинается процесс сбора информации об использовании памяти в объектах Sample.
flash.sampler
  
Завершает процесс сбора объектов Sample с данными об использовании памяти и освобождает ресурсы, выделенные для обработки образцов.
flash.sampler
Сведения о функции
clearSamples()функция
public function clearSamples():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Удаляет текущий набор объектов Sample. Этот метод обычно используется после вызова getSamples() и повторяется для каждого объекта Sample. Только для отладочной версии проигрывателя Flash Player.

См. также

getGetterInvocationCount()функция 
public function getGetterInvocationCount(obj:Object, qname:QName):Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращает число, указывающее сколько раз была выполнена функция получения. С помощью метода isGetterSetter() можно проверить наличие функции получения/установки перед использованием метода getGetterInvocationCount(). Только для отладочной версии проигрывателя Flash Player.

Параметры

obj:Object — Экземпляр метода или класс.
 
qname:QName — Если для qname задано undefined, возвращается число итераций функции конструктора.

Возвращает
Number — Число, указывающее сколько раз был выполнен метод получения.

См. также

getInvocationCount()функция 
public function getInvocationCount(obj:Object, qname:QName):Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращает число, указывающее сколько раз был выполнен метод. Если параметр obj это класс, а для параметра qname задано undefined, то данный метод возвращает число итераций функции конструктора. Только для отладочной версии проигрывателя Flash Player.

Параметры

obj:Object — Экземпляр метода или класс. Класс можно использовать для получения счетчика вызовов функций экземпляра, когда экземпляр метода недоступен. Если для obj задано undefined, этот метод возвращает счетчик действующей на уровне пакета функции с названием qname.
 
qname:QName — Если для qname задано undefined, возвращается число итераций функции конструктора.

Возвращает
Number — Число, указывающее сколько раз был выполнен метод.

Пример

 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) { }
      
    }
}
getMemberNames()функция 
public function getMemberNames(o:Object, instanceNames:Boolean = false):Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращается объект, содержащий все члены указанного объекта, включая частные члены. Затем можно выполнить итерации для возвращенного объекта, чтобы увидеть все значения. Этот метод сходен с методом flash.utils.describeType(), но также позволяет увидеть частных членов и пропустить промежуточный шаг создания объекта XML. Только для отладочной версии проигрывателя Flash Player.

Параметры

o:Object — Объект для анализа.
 
instanceNames:Boolean (default = false) — Если объект является классом и для instanceNames задано значение true, имена экземпляров передаются, как если бы "o" было экземпляром класса вместо имен членов класса.

Возвращает
Object — Объект, для которого нужно выполнять итерации с помощью цикла for each..in для извлечения QNames по каждому свойству.

См. также


Пример

В следующем примере метод getMemberNames() используется для анализа объекта и отображения свойств buttonMode, filters и dispatchEvent для его членов. Для использования профилировщика памяти необходимо, чтобы был установлен отладочный вариант проигрывателя Flash Player версии 9.0.115.0 или более поздней.
 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()функция 
public function getSampleCount():Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращает число собранных образцов. Только для отладочной версии проигрывателя Flash Player.

Возвращает
Number — Итератор экземпляров Sample.

См. также

getSamples()функция 
public function getSamples():Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращает объект с экземплярами Sample, содержащими данные об использовании памяти для последнего сеанса взятия образцов. Только для отладочной версии проигрывателя Flash Player.

Возвращает
Object — Итератор экземпляров Sample.

См. также

getSetterInvocationCount()функция 
public function getSetterInvocationCount(obj:Object, qname:QName):Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращает число, указывающее сколько раз была выполнена функция установки. С помощью метода isGetterSetter() можно проверить наличие функции получения/установки перед использованием метода getSetterInvocationCount(). Только для отладочной версии проигрывателя Flash Player.

Параметры

obj:Object — Экземпляр метода или класс.
 
qname:QName — Если для qname задано undefined, возвращается число итераций функции конструктора.

Возвращает
Number — Возвращает число, указывающее сколько раз был выполнен метод установки.

См. также

getSize()функция 
public function getSize(o:*):Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Возвращает размер, занимаемый указанным объектом в памяти, при использовании его в проигрывателе Flash Player 9.0.115.0 или более поздних отладочных версиях. Если используется не с отладочной версией проигрывателя Flash Player, этот метод возвращает значение 0.

Параметры

o:* — Объект для анализа использования памяти.

Возвращает
Number — Счетчик памяти (в байтах), использованной указанным объектом.

Пример

В следующем примере методы startSampling() и pauseSampling используются для сбора объектов Sample. Затем пример повторяется для всех объектов Sample с разными значениями id и размерами. После вызова System.gc() для прекращения текущего процесса, в примере выполняется сравнение объектов deletedObjectSample с исходными значениями id и отображается их размер. Для использования профилировщика памяти необходимо, чтобы был установлен отладочный вариант проигрывателя Flash Player версии 9.0.115.0 или более поздней.
 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()функция 
public function isGetterSetter(obj:Object, qname:QName):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Выполняется проверка, позволяющая увидеть, что свойство определено с помощью функции получения/установки. Если требуется использовать метод getInvocationCount() в отношении функции получения/установки для свойства, вначале вызовите метод isGetterSetter(), чтобы проверить, действительно ли это функция получения/установки, а затем используйте либо getSetterInvocationCount, либо getGetterInvocationCount для получения соответствующих счетчиков. Только для отладочной версии проигрывателя Flash Player.

Параметры

obj:Object — Экземпляр метода или класс.
 
qname:QName — Если для qname задано undefined, возвращается число итераций функции конструктора.

Возвращает
Boolean — Логическое значение указывает на то, задано ли это свойство функцией получения/установки (true) или нет (false).

См. также


Пример

 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()функция 
public function pauseSampling():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Немедленно завершает обработку образцов. Процесс обработки образцов повторно запускается с помощью метода startSampling(). Только для отладочной версии проигрывателя Flash Player.

См. также

startSampling()функция 
public function startSampling():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Начинается процесс сбора информации об использовании памяти в объектах Sample. Только для отладочной версии проигрывателя Flash Player.

См. также


Пример

В следующем примере запускается процесс сбора образцов и повторения операций для собираемых объектов. Для использования профилировщика памяти необходимо, чтобы был установлен отладочный вариант проигрывателя Flash Player версии 9.0.115.0.
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()функция 
public function stopSampling():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Завершает процесс сбора объектов Sample с данными об использовании памяти и освобождает ресурсы, выделенные для обработки образцов. Процесс сбора образцов запускается с помощью метода startSampling(). Только для отладочной версии проигрывателя Flash Player.

См. также