簡體   English   中英

不確定是否是內存泄漏(ARC)

[英]Not sure if it's a memory leak (ARC)

我正在編寫自定義動畫,我懷疑內存泄漏,但是我不確定。 每次運行給定的動畫內存時,內存都會增加一點,但不會減少。 為了確保這一點,我進行了測試:

NSLog(@"%@", self.weakanim);

// The animation collection to run
HyAnimationCollection * collection = [[HyAnimationCollection alloc] init];

self.weakanim = collection;

首先,此日志為nil然后始終記錄一個地址。 因此,這里有兩個指標:

  1. 內存開始時為9.7MB,每運行10次動畫就會增加0.1MB。 我測試了大約12MB。 現在,應該每次都釋放內存嗎?還是僅僅是ARC(例如JVM的垃圾收集器)僅定期釋放內存? 也就是說,也許這不是泄漏,但是ARC尚未發布它,因為我還沒有達到一定數量。
  2. 我宣布weakanimweak只是為了看看以前的動畫集合被釋放,但同樣的問題仍然出現了:是ARC沒有釋放嗎?
  1. ARC不能像JVM一樣工作。 使用“自動釋放池”時,獲得的結果最接近。 在這種情況下,直到運行循環結束,對象才相關。 如果可以看到動畫正在運行,則運行循環很可能正在運行,並且應該定期刷新池。

  2. 顯示是否存在泄漏的更好方法是在HyAnimationCollection類的dealloc方法中放置一個斷點。 如果您的其余調查是正確的,我想它永遠不會被調用。 您可能在代碼中有一個保留周期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM