2013-11-26 73 views
0

我想知道,當涉及到內存使用的變量是如何工作的。假設我正在製作遊戲,並且我有一個名爲EnemyManager的單身人士,我也有一些敵人,但是所有這些敵人都需要與EnemyManager進行'聯繫'。因此,我選擇在每個敵人實例中作出變量。到單個實例幾個參考 - AS3

var enemyManagerRef:EnemyManager = EnemyManager.getInstance(); 

接下來的問題是,將所有這些變量佔用了大量的內存,我應該改爲考慮使用一個靜態變量,所以我只有1個參考,或者它使用很少的內存?

預先感謝您

彼得

回答

0

的EnemyManager應在內存中已分配和所有的引用將指向它。這與創建巨大位圖時相同,然後創建1000個引用。您不創建副本,因此您的內存使用率應該很低。

+0

但是,當可以合理地使一個單一的靜態變量代替? 我想有一些數學是涉及這個。它必須歸結爲每個引用需要多少內存以及單個靜態變量的功能。 – user3037458

+0

那麼,這取決於你的實施,但基本上我敢猜測不會有太多的差異。最大的可能是調用getInstance()的開銷(這並不是什麼大問題)。 – Fygo

+0

@ user3037458靜態變量比類本地變量要慢,而類本地變量消耗更多內存(每個實例只有幾個字節)。這是一個內存vs性能問題,除非你的敵人需要每次向敵人管理員多次提交內容,否則這個問題很小。 – Vesper