包 | flash.sampler |
类 | public final class NewObjectSample |
继承 | NewObjectSample Sample Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.115.0 |
getSamples()
流中创建的对象。仅适用于 Flash Player 调试器版。
相关 API 元素
公共属性
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
object : * [只读]
NewObjectSample 对象(如果仍存在)。 | NewObjectSample | ||
size : Number [只读]
NewObjectSample 对象大小。 | NewObjectSample |
公共常量
常量 | 由以下参数定义 | ||
---|---|---|---|
stack : Array
包含 Flash Player 在指定时段执行的方法的相关信息。 | Sample | ||
time : Number
定义 Sample 实例持续时间的微秒数。 | Sample | ||
type : Class
与 getSamples() 流中创建的对象相对应的 Class 对象。 | NewObjectSample |
属性详细信息
object | 属性 |
size | 属性 |
常量详细信息
type | 常量 |
public const type:Class
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.115.0 |
与 getSamples()
流中创建的对象相对应的 Class 对象。仅适用于 Flash Player 调试器版。
示例 如何使用本示例
SampleTypesExample.as
下面的示例使用 Sample 对象
s
的 stack
和 time
属性来收集内存样本。该样本包含 NewObjectSample 对象(newSamples
数组)、DeleteObjectSample 对象(delSamples
数组)和 CPU 内存样本对象(cpuSamples
数组)。为了使用内存设置,需要安装 Flash Player 调试器版 9.0.115.0 或更高版本。
package { import flash.sampler.* import flash.system.* import flash.utils.* import flash.display.Sprite public class sampleTypes extends Sprite { var b:Boolean = true public function sampleTypes() { flash.sampler.startSampling(); for(var i:int=0;i<10000;i++) new Object(); var cpuSamples:Array=[]; var newSamples:Array=[]; var delSamples:Array=[]; var ids:Array=[] var lastTime:Number=0; for each(var s:Sample in getSamples()) { assert(s.time > 0); // positive assert(Math.floor(s.time) == s.time, s.time); // integral assert(s.time >= lastTime, s.time + ":" + lastTime); // ascending assert(s.stack == null || s.stack is Array) if(s.stack) { assert(s.stack[0] is StackFrame); assert(s.stack[0].name is String); } if(s is NewObjectSample) { var nos = NewObjectSample(s); assert(s.id > 0, s.id); assert(s.type is Class, getQualifiedClassName(s.type)); newSamples.push(s); ids[s.id] = "got one"; } else if(s is DeleteObjectSample) { var dos = DeleteObjectSample(s); delSamples.push(s); assert(ids[dos.id] == "got one"); } else if(s is Sample) cpuSamples.push(s); else { assert(false); } lastTime = s.time; } trace(b) trace(newSamples.length > 0) trace(cpuSamples.length > 0) trace(delSamples.length > 0) } private function assert(e:Boolean, mess:String=null):void { b = e && b; if(true && !e) { if(mess) trace(mess); trace(new Error().getStackTrace()); } } } }
Tue Jun 12 2018, 11:04 AM Z