Actionscript 3 为什么flash在创建数组和创建包含数组的类时会消耗不同数量的内存?
我在试验发现AS3中有多少不同的数据结构消耗了内存 我发现创建一个简单的数组对象消耗了76个字节:Actionscript 3 为什么flash在创建数组和创建包含数组的类时会消耗不同数量的内存?,actionscript-3,flash,memory,memory-management,Actionscript 3,Flash,Memory,Memory Management,我在试验发现AS3中有多少不同的数据结构消耗了内存 我发现创建一个简单的数组对象消耗了76个字节: var arr:Array = new Array(); trace(getSize(arr)); 然而,创建一个包含数组的简单类显示了20个字节: var t:Testing2 = new Testing2(); trace(getSize(t)); 下面是该类的外观: package { import flash.sampler.StackFrame; import fla
var arr:Array = new Array();
trace(getSize(arr));
然而,创建一个包含数组的简单类显示了20个字节:
var t:Testing2 = new Testing2();
trace(getSize(t));
下面是该类的外观:
package {
import flash.sampler.StackFrame;
import flash.display.Bitmap;
import flash.display.Sprite;
public class Testing2 {
private var arr:Array;
public function Testing2() {
// constructor code
arr = new Array();
}
}
}
我很困惑。为什么会出现这种行为?在这种情况下,不会对对象中的所有引用求和,而只是对类的指针引用的大小。它是t
对象指针的大小
对象内的引用不会被反射
例如:
trace(getSize(t)); // 12-bytes
trace(getSize(t.arr)); // 32-bytes
这将有助于分析指向同一内存模型的多个实例的大小
其他示例包括,getSize()
不反映对象实例保留的内存
使用getSize()
有助于对代码进行基准测试,以确定任务的最有效对象