このパッケージは、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 |
| | |
指定されたオブジェクトのすべてのメンバー (プライベートメンバーを含む) を含むオブジェクトを返します。 | 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 |
public function clearSamples():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
Sample オブジェクトの現在のセットをクリアします。このメソッドは通常、getSamples() を呼び出して Sample オブジェクトを繰り返し処理した後に呼び出します。Flash Player デバッグ版のみ。
関連項目
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 の場合は、コンストラクタ関数の繰り返し回数を返します。
|
戻り値関連項目
public function getInvocationCount(obj:Object, qname:QName):Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
メソッドが実行された回数を返します。パラメータ obj が Class で、パラメータ qname が undefined の場合、このメソッドはコンストラクタ関数の繰り返し回数を返します。 Flash Player デバッグ版のみ。
パラメータ
| obj:Object — メソッドインスタンスまたはクラスです。メソッドインスタンスが使用できない場合は、クラスを使用してインスタンス関数の呼び出し回数を取得できます。obj が undefined の場合、このメソッドは qname で名前が指定されたパッケージスコープ関数の回数を返します。
|
| |
| qname:QName — qname が undefined の場合は、コンストラクタ関数の繰り返し回数を返します。
|
戻り値 例
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 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() メソッドを使用してオブジェクトを解析し、そのメンバーの
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);
}
}
}
public function getSampleCount():Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
収集されたサンプルの数を返します。 Flash Player デバッグ版のみ。
戻り値 | Number — Sample インスタンスのイテレータです。
|
関連項目
public function getSamples():Object| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
最後のサンプリングセッションからメモリ使用状況 Sample インスタンスのオブジェクトを返します。 Flash Player デバッグ版のみ。
戻り値 | Object — Sample インスタンスのイテレータです。
|
関連項目
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 の場合は、コンストラクタ関数の繰り返し回数を返します。
|
戻り値関連項目
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);
}
}
}
}
}
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) { }
}
}
public function pauseSampling():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
サンプリング処理を一時的に停止します。startSampling() () を使用してサンプリング処理を再開します。 Flash Player デバッグ版のみ。
関連項目
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)
}
}
}
public function stopSampling():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
メモリ使用状況 Sample オブジェクトを収集する処理を終了し、サンプリング処理に使用されたリソースを解放します。サンプリング処理を開始するには、startSampling() () を使用します。 Flash Player デバッグ版のみ。
関連項目
© 2009 Adobe Systems Incorporated. All rights reserved.
Thu Mar 19 2009, 08:57 PM -07:00