IOS閃退已經很好了
我有一台HTC Sensation XL
裡頭的HTC Sense是會常常重開的(不是重開機,是Sense會重跑)
有用這款手機的人大概都知道那種痛苦
原因就是Ram太小
89. wrote:
2.記憶體不足跟閃退無關
因為iOS會自行釋放記憶體
閃退真正的原因是記憶體洩漏
iOS為了系統安全就強制關閉該程式...(恕刪)


閃退跟記憶體不足還是有直接的關聯性。如果是記憶體洩漏(算軟體bug)的話,那理論上該程式在記憶體較多的硬體閃退的頻率也會很高。iOS 會自行釋放記憶體沒錯,但是有些軟體就是會在某些時候需要固定量的記憶體,記憶體不夠,再怎麼樣釋放也沒有用。比如說在iPad1(256MB)上 iOS 自己固定吃 100MB 記憶體好了,你玩一個遊戲需要 150MB 的記憶體,當一些系統服務開始運作的時候,比如說 iCloud 同步在背後啟動,多吃 20MB 記憶體,iOS 會以系統服務為優先,把你的遊戲殺掉(閃退)來釋放記憶體。

話說 iOS 對於記憶體管理還是很有效率的,如果Android裝置只有256MB記憶體的話....



shiorifan wrote:
閃退跟記憶體不足還是有直接的關聯性。如果是記憶體洩漏(算軟體bug)的話,那理論上該程式在記憶體較多的硬體閃退的頻率也會很高。iOS 會自行釋放記憶體沒錯,但是有些軟體就是會在某些時候需要固定量的記憶體,記憶體不夠,再怎麼樣釋放也沒有用。比如說在iPad1(256MB)上 iOS 自己固定吃 100MB 記憶體好了,你玩一個遊戲需要 150MB 的記憶體,當一些系統服務開始運作的時候,比如說 iCloud 同步在背後啟動,多吃 20MB 記憶體,iOS 會以系統服務為優先,把你的遊戲殺掉(閃退)來釋放記憶體。

話說 iOS 對於記憶體管理還是很有效率的,如果Android裝置只有256MB記憶體的話....



1.記憶體洩漏就是軟體Bug

2.記憶體較多,記憶體洩漏的情況就越不嚴重
如果iOS固定佔用100MB
可用的記憶體就是「總記憶體 - iOS固定佔用記憶體」
以256MB為例
可用記憶體就是156MB
所以只要使用超過156MB就會被殺掉

如果記憶體是512MB
可用記憶體就是412MB
只要使用超過412MB就會被殺掉

所以理論上該程式在記憶體較多的硬體閃退的頻率會較低


3.如果iOS固定佔用100MB,那就算iCloud同步也還是佔用100MB(不然就不叫固定佔用了)

以主記憶體256MB為例
iOS軟體在開發的時候
如果使用超過156MB
就會被殺掉

4.背景程式不會佔用記憶體

當記憶體不足
iOS就會釋放「背景程式」的記憶體
「確保」前景程式有156MB可用
所以永遠不可能記憶體不足
除非前景程式使用超過156MB的記憶體
而超過的原因就是記憶體洩漏

結論:
iOS不會因為記憶體不足(背景程式過多)殺掉前景程式
只會因為內存洩漏殺掉前景程式
happy = new year(2011);
hjack wrote:
某些特定頁?...(恕刪)


沒特別注意哩,但是大部份都是在load圖的時侯發生,有時也發生在沒圖的討論串
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!