我經常嘗試修復當我使用我的iPhone用於其他內存飢餓的東西時出現的錯誤,並且它需要釋放一些內存並因此從我的應用程序中卸載一些視圖。我發現這很難模擬當我需要它,所以我決定,將嘗試分配儘可能多的內存,並強制我的測試應用程序釋放未使用的意見等。如何使iPhone應用程序快速填充內存
我試過一些簡單的事情,幾百毫秒,但出於某種原因沒有做任何事情
[[NSData alloc] initWithBytes:malloc(2048 * 1024) length:2048 * 1024];
儀器顯示該Apps是越來越大,遠遠超出了(MBS數百分配)iPhone的內存容量,但我甚至不得到內存警告並且它根本不影響其他應用程序。有沒有一些保障措施,以某種方式阻止iPhone應用程序形式做這樣的事情?或者我對iphone的工作原理有錯誤嗎? 當你面對它時,你如何解決這個問題?
編輯:我正在我的設備上的應用程序,我是不是能夠得到卸載模擬器上我的意見,即使我模擬內存警告(這有時會工作,但很少)
EDIT2:爲bbum指出出的問題的確是虛擬分配,簡單的memset後分配的伎倆
void *data = malloc(1024 * 1024);
memset(data, 0, 1024 * 1024);
您是對的!我懷疑有類似的詭計,但我不知道簡單的讀/寫能解決它。謝謝! – Lope 2011-03-03 19:40:30