這一直是我的一個好奇心,我沒有得到分析發現,並且還沒有看到它問過(對於AS3):使用靜態方法和實例方法的AS3對象內存使用情況
比方說,我有一個類:
class MyClass {
public function myMethod():String {
return "some return value";
}
}
將被實例化了很多次:
for (var i:Number = 0; i < 10000; i++) {
var myObject:MyClass = new MyClass();
trace(myObject.myMethod);
}
將改變myMethod
靜電對內存FO任何變化我的應用程序的otprint?
mxmlc是否足夠智能地對該函數進行單引用?
基本上,如果我把我的方法非靜態纔會有:
- 從靜態版本就內存而言 的方法沒有什麼區別
- 出1萬隻個小實例引用到一個單一的功能
- 10,000函數字節碼重複
在內存中?
參考第一段,兩種情況下都會有10,000個實例。問題是如果將myMethod更改爲靜態將改變內存使用情況。從兩個答案看,它不會。 – umop 2010-11-17 03:18:04
@umop。我從代碼示例中看到,我認爲在使用靜態方法的情況下不會創建10,000個實例。無論如何,如果你聲明瞭一個實例方法,函數本身的代碼將不會被複制。唯一的額外空間將是特性對象中的一個額外插槽,以引用此方法,對於更實用的目的應該可以忽略不計。 – 2010-11-17 11:37:46