2010-11-05 69 views
1

在Actionscript 3中,引用/指向對象的指針在內存和性能方面的成本是多少?弱引用(使用Dictionary對象)少,相同或更多的開銷?AS3對象引用/指針成本

回答

1

引用不過是位於堆上的對象的地址。我想這取決於地址範圍,需要多少字節/秒。在任何情況下,這將是真的很小,無論是32位機的雙字或64位的qword。你也可以將它們視爲微不足道的,不要擔心它們佔用了多少空間。

有了性能,唯一需要擔心的是當您訪問另一個類中的靜態變量時,需要進行一些額外的查找,這會稍微降低性能(但是與您所在的同一類中的靜態變量調用是一樣的 - 從我讀過的)。

我的教育猜測是弱引用在開銷方面是一樣的,即使它們不是,它也會是一個微觀差異。

如果你有興趣閱讀更多有關AVM2的黑暗深處,那麼這是一個相當不錯的閱讀http://learn.adobe.com/wiki/display/AVM2/1.+Introduction

希望幫助

+1

小的修正:引用像指針,4字節在32位機器和64位的8個字節。 – alxx 2010-11-08 07:48:14

+0

@alxx - 謝謝,我已經更新了答案。我在想,也許Flash出於某種原因使用了有限的地址空間:S – Allan 2010-11-08 08:51:35

+0

AFAIK,進程無法告訴OS在某個預定義的範圍內爲內存提供服務。在Flex Builder中,可以看到引用的值;他們可能會非常不同。 – alxx 2010-11-08 18:02:33