2011-04-25 70 views
0

我正在爲Mac編寫一個Cocoa程序,它包含一個圖片瀏覽器。 圖片瀏覽器的工作是從網上下載圖片並顯示它。每次我點擊一個可以給它一個圖片URL的按鈕,它都會這樣做。所以這會很頻繁。可可應用程序的奇怪內存問題

我的設計目標是,每當我切換到另一張圖片或暫時關閉它(它不是主窗口)後,它都會釋放它所需的內存。例如,在我打開圖片瀏覽器之前,我的應用程序需要1M內存。打開圖片後,需要大約2M內存。關閉它後,它會將內存使用量降低到原來的1M。

問題是,有時在我觀看圖片後,尤其是一個大圖片時,觀衆不會給出它花費的所有內存,例如打開它花費大約20M內存,但是在我關閉它之後,只有10發佈的20個,另外10個仍然存在,永遠不會被釋放。它看起來像內存泄漏,但我檢查了我的代碼並分析了很多次,我找不到任何內存泄漏,而且其他一些圖片也不會像這樣。

這很奇怪,這可能是肯定的可可內存緩存策略嗎?任何建議,將不勝感激。提前致謝!

更新:今天我添加一個scrollView作爲imageView的包裝,這個奇怪的內存問題似乎幾乎是固定的。

感謝您的建議,edc1591,我會繼續弄清楚發生了什麼事。

+0

發佈問題所在的代碼。 – edc1591 2011-04-25 23:48:33

回答

1

沒有看到代碼,很難分辨出問題所在。但直到我看到代碼,我會給你幾個處理這個問題的指針:

  • 啓用垃圾收集。如果你已經擁有了它啓用,請嘗試強制垃圾收集釋放的圖像文件這樣的後:

    [[NSGarbageCollector defaultCollector] collectIfNeeded];

  • 嘗試heapshot分析。 Here's一個很好的教程。

我會在代碼發佈後更新此答案。

+0

可以請你回答我的這個問題http://stackoverflow.com/questions/5790008/audio-recorded-is-echoing-in-mac-app-using-apple-sample – Swastik 2011-04-27 03:49:36

+0

@Swastik,我不熟悉東西,對不起。 – edc1591 2011-04-27 12:08:06

+0

無論如何回覆back.Nic我很好我自己解決了我的問題。我看到你的mac回答很多,爲什麼我特意問你 – Swastik 2011-04-27 12:10:19