このパッケージは、Adobe Flex Builder で配布されるプロファイリングエージェントによって使用され、プロファイリングエージェントのカスタマイズや独自のメモリテストを構築するために提供されています。startSampling() メソッドおよび Flash Player デバッグ版 9.0.115.0 以降を使用してメモリ使用量のサンプルを収集します。次に getSamples() メソッドを使用して、メモリ使用量のサンプルを取得します。各サンプルは、実行中のアプリケーションの独立した間隔のメモリ使用量を表します。次に flash.sampler パッケージの他のメソッドを使用して、メモリ使用量の情報を分析します。

メモ:独自のプロファイリングエージェントを作成する場合、"mm.cfg" ファイルで PreloadSwf プロパティを設定することで、エージェント SWF ファイルをプリロードできます。

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

プリロードされた各エージェント SWF ファイルは独自のセキュリティドメインを持ち、プロファイリングされている SWF ファイルから独立したセキュリティサンドボックスで実行されます。flash.sampler パッケージのメソッドを実行するには、エージェント SWF ファイルが localTrusted ファイルパスに配置されている必要があります(『Flash Player 9 セキュリティに関するホワイトペーパー』を参照してください)。

パブリックメソッド
 関数定義元
  
Sample オブジェクトの現在のセットをクリアします。
flash.sampler
  
get 関数が実行された回数を返します。
flash.sampler
  
メソッドが実行された回数を返します。
flash.sampler
  
getMemberNames(o:Object, instanceNames:Boolean = false):Object
指定されたオブジェクトのすべてのメンバー (プライベートメンバーを含む) を含むオブジェクトを返します。
flash.sampler
  
収集されたサンプルの数を返します。
flash.sampler
  
最後のサンプリングセッションからメモリ使用状況 Sample インスタンスのオブジェクトを返します。
flash.sampler
  
set 関数が実行された回数を返します。
flash.sampler
  
Flash Player 9.0.115.0 以降のデバッグ版で使用した場合、指定されたオブジェクトのメモリ内サイズを返します。
flash.sampler
  
プロパティが get/set 関数によって定義されているかどうかを確認します。
flash.sampler
  
サンプリング処理を一時的に停止します。
flash.sampler
  
メモリ使用状況 Sample オブジェクトを収集する処理を開始します。
flash.sampler
  
メモリ使用状況 Sample オブジェクトを収集する処理を終了し、サンプリング処理に使用されたリソースを解放します。
flash.sampler
関数の詳細
clearSamples()関数
public function clearSamples():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

Sample オブジェクトの現在のセットをクリアします。このメソッドは通常、getSamples() を呼び出して Sample オブジェクトを繰り返し処理した後に呼び出します。Flash Player デバッグ版のみ。

関連項目

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

get 関数が実行された回数を返します。isGetterSetter() を使用して get/set 関数があることを確認してから getGetterInvocationCount() を使用してください。Flash Player デバッグ版のみ。

パラメータ

obj:Object — メソッドインスタンスまたはクラスです。
 
qname:QName — qname が undefined の場合は、コンストラクタ関数の繰り返し回数を返します。

戻り値
Number — get メソッドが実行された回数です。

関連項目

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

メソッドが実行された回数を返します。パラメータ obj が Class で、パラメータ qnameundefined の場合、このメソッドはコンストラクタ関数の繰り返し回数を返します。 Flash Player デバッグ版のみ。

パラメータ

obj:Object — メソッドインスタンスまたはクラスです。メソッドインスタンスが使用できない場合は、クラスを使用してインスタンス関数の呼び出し回数を取得できます。objundefined の場合、このメソッドは 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
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

指定されたオブジェクトのすべてのメンバー (プライベートメンバーを含む) を含むオブジェクトを返します。返されたオブジェクトを繰り返し処理してすべての値を確認できます。このメソッドは flash.utils.describeType() メソッドと似ていますが、プライベートメンバーも確認することが可能で、XML オブジェクトを作成するという中間手順を省略できます。 Flash Player デバッグ版のみ。

パラメータ

o:Object — 解析するオブジェクトです。
 
instanceNames:Boolean (default = false) — オブジェクトが Class の場合、instanceNames に true を指定すると、o がクラスのメンバー名ではなくクラスのインスタンスであるかのようにインスタンス名が報告されます。

戻り値
Object — 各プロパティの QNames を取得するための、for each..in ループで繰り返す必要があるオブジェクト。

関連項目




次の例では、getMemberNames() メソッドを使用してオブジェクトを解析し、そのメンバーの buttonModefiltersdispatchEvent の各プロパティを表示します。メモリプロファイラを使用するには、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
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

収集されたサンプルの数を返します。 Flash Player デバッグ版のみ。

戻り値
Number — Sample インスタンスのイテレータです。

関連項目

getSamples()関数 
public function getSamples():Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

最後のサンプリングセッションからメモリ使用状況 Sample インスタンスのオブジェクトを返します。 Flash Player デバッグ版のみ。

戻り値
Object — Sample インスタンスのイテレータです。

関連項目

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

set 関数が実行された回数を返します。isGetterSetter() を使用して get/set 関数があることを確認してから getSetterInvocationCount() を使用してください。Flash Player デバッグ版のみ。

パラメータ

obj:Object — メソッドインスタンスまたはクラスです。
 
qname:QName — qname が undefined の場合は、コンストラクタ関数の繰り返し回数を返します。

戻り値
Number — set メソッドが実行された回数です。

関連項目

getSize()関数 
public function getSize(o:*):Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 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
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

プロパティが get/set 関数によって定義されているかどうかを確認します。プロパティの get/set 関数に対して getInvocationCount() を使用する場合は、まず isGetterSetter() を呼び出し、それが get/set 関数であることを確認してから、getSetterInvocationCount または getGetterInvocationCount を使用してそれぞれの回数を取得します。Flash Player デバッグ版のみ。

パラメータ

obj:Object — メソッドインスタンスまたはクラスです。
 
qname:QName — qname が undefined の場合は、コンストラクタ関数の繰り返し回数を返します。

戻り値
Boolean — プロパティが get/set 関数によって定義されているかどうかを示すブール値です (定義されている場合は 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
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

サンプリング処理を一時的に停止します。startSampling() () を使用してサンプリング処理を再開します。 Flash Player デバッグ版のみ。

関連項目

startSampling()関数 
public function startSampling():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 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
ランタイムバージョン: AIR 1.0 Flash Player 9.0.115.0

メモリ使用状況 Sample オブジェクトを収集する処理を終了し、サンプリング処理に使用されたリソースを解放します。サンプリング処理を開始するには、startSampling() () を使用します。 Flash Player デバッグ版のみ。

関連項目

 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/sampler/package.html