[英]AS3 - Memory management
我對AS3內存管理有疑問,我想知道是否有人可以幫助我。
假設我為一個類創建了一個實例變量,在這種情況下或鍵入Sound:
public class SoundStore extends Sprite{
var s:Sound;
然后在各種類函數中,每次要加載新的聲音時,我都會多次引用此變量:
s = new Sound();
我是否正確地認為,每次創建新的聲音時,都會覆蓋以前分配的內存?
謝謝
否。AS3是一種垃圾收集語言,它使用引用計數來處理未使用的對象。
s
變量在內部是指向包含Sound
對象的內存塊的指針。 每次執行s = new Sound()
AS3都會在內存中創建一個新的Sound
對象,並將s
指針設置為該對象的地址。 舊對象仍然存在於內存中。 如果沒有對舊對象的引用,則垃圾收集器將在某個時候(通常是下一個收集回合)處置該對象。 這意味着在任何時間點,您的內存中可能都有多個Sound
對象,這些對象沒有被引用但仍在消耗資源。 垃圾收集器旨在定期遍歷所有分配的對象,並在沒有引用它們的情況下對其進行處理。
這是關於Flash / AS3中GC的不錯的文章: http : //www.adobe.com/devnet/flashplayer/articles/garbage_collection.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.