2010-11-05 50 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