手機越用越慢,不能全怪 CPU 和垃圾軟體
題圖:Yestone 邑石網正版圖庫
在你的專業里,有什麼基礎知識是和普通人的認識不相符的?
知友:老狼
(700+ 贊同)
手機越用越慢並不是 CPU 老化了,也並不一定是垃圾 App 安裝多了。
也許你和我有一樣的感受,手機剛買時運行還比較流暢,可是過了一段時間(大概一兩年)卻越用卻卡。
這在很多中低端手機尤其明顯。你也許會懷疑是不是垃圾應用安裝多了,可你會發現很多時候甚至重刷系統都不能解決問題,還是難以回復初始的暢快感。
這是不是手機廠商的陰謀,逼迫我們升級手機呢?還是 CPU 老化了,運行速度越來越慢了呢?
其實 CPU 並不會因為老化而變慢,CPU 使用長了並不會降頻,如果我們把電腦和手機變慢的罪魁禍首歸咎於 CPU,那真是錯怪它了。
那麼為什麼手機會越用越慢呢?
原因很多,軟體原因是安裝軟體越來越多等等;
硬體原因也許就是風扇髒了,轉速慢了,造成溫度過高而降頻;
或者 SSD 的空間滿了/沒有啟動 Trim(造成速度極大降低等等。
簡單來說就是 CPU 的速度是恆定的,都是一個基頻乘以一個比例(Ratio)出來的。
基頻現在 Intel CPU 一般是 100MHz,我們用的 3G CPU,Ratio 就是 30,下來剛好 3GHz。
ARM 的也類似。而基頻和 Ratio 在整個生命期是不變的,從而 CPU 運算速度是不變的。手機裡面其他的子系統也類似。
其實這除了和我們安裝的應用軟體越來越多,而國產 app 經常不請自來在後台偷偷運行有關外。重刷系統都不能解決速度問題和手機的存儲介質——
快閃記憶體關係很大。
寫放大(Write Amplification)
我在專欄文章介紹 FTL
時,介紹了快閃記憶體的存儲特性。快閃記憶體寫入是以 page 為單位,而擦除是以 block 為單位,在寫之前必須擦除。
我們也知道了為了延長快閃記憶體的生命周期和壽命均衡(Wear Levelling),FTL 用 LBA/PBA 表來映射邏輯和物理操作單位,而一般的消費級 SSD 和快閃記憶體系統有至少 7% 的空閑塊——OP(Over Provisioning)。
OP 空間就是快閃記憶體主控保留的自有空間,用來負責負載均衡和防止寫放大。一個形象的例子就像我們玩數字華容道:
我們要把方塊 1 挪到右下角,一定好充分利用唯一的空格位置,將它移來移去,十分的困難。
我們想像一下,如果在最下面忽然多出一整排空閑位置,這樣相信就是小學生也可以輕鬆完成這個簡單版華容道,而不需要很多步驟。
我們的 OP 就是這個空閑塊,多了後就會顯著減少挪動的步數,而步數就可以看作寫放大,對快閃記憶體壽命和速度有顯著影響。
因為這個原因,所以 SSD 和手機廠商必定會空出部分空間來給 OP,一般至少 7%。
高端的 SSD 和手機的 OP 空間能夠達到 20% 到 30% 以上。OP 的大小對性能影響很大,我們今天來看看 OP 和寫放大對 flash 性能的影響。
我們假設要寫入一個 4KB 的數據,可是一個塊里已經沒有乾淨空間了,但是有失效的數據可以擦除,所以主控就把所有的數據搬到緩存或者 OP 空間,然後擦除塊,再加上這個 4KB 新數據寫回去,這個操作就造成了寫入放大,即本來是寫 4K 的數據,卻造成了整個塊(512KB)的寫入操作,也就是 128 倍放大。
當然我們前文提到 LBA / PBA 並不是簡單的 block,而垃圾收集和 Trim 對寫放大都有所減緩。但隨著快閃記憶體空閑空間越來越少,主控的騰挪空間也越來越少。IBM Zurich Research Laboratory 做的研究證明寫放大和空閑凈塊關係極大,如下圖:
可以看出,在空閑塊少後,寫放大可以達到 3 到 4 倍。
我們新買的 SSD 和手機,空空如也的數據塊讓寫性能達到最大,而隨著程序和數據越來越多,寫入性能也逐漸下降。
那究竟空閑塊少到多少才會性能下降,降到什麼程度呢?
數據
根據 Anandtech 做的實驗數據,我們 la 如下圖:
橫軸是時間,縱軸是寫入 IOPS。隨著時間寫入越來越多的隨機 4KB 數據,開始 100000 的 IOPS 在某時刻劇烈下降,最後隨著空閑乾淨塊慢慢減少,穩定到了 10000IOPS,效能下降到原來的 10%!
當然最終用戶使用情況沒有這麼惡劣,但數據說明寫放大對效能的影響巨大。這也是為什麼高端企業級 SSD 的 op 空間巨大的原因,Intel 的 SSD DC3700 的 op 空間達到 32%,這讓它有了巨大的騰挪空間,它的曲線異常平滑:
這對伺服器市場非常重要。
結論
數據表明,我們對手機存儲空間或 SSD 使用大於 75%後,寫入性能就會因為寫放大而大大下降。
中低端手機 Flash 空間本來就小,OP 又小,很容易造成寫放大,大大減低了 Flash 的壽命。而壽命降低,會出現更多壞塊,反過來又加劇寫放大,形成惡性循環。速度會越來越慢,這個靠重刷系統是不能解決問題的。
現在你是不是要考慮買個大容量的手機了?iPhone 手機為了提升用戶體驗,op 留的很大,所以快滿了後差距並不是很厲害,可以類比 Intel 那款 SSD。
後記
有很多朋友留言問解決辦法,這裡簡單說一下,稍後會寫一篇專欄文章詳細介紹步驟和手機 Flash 與 SSD 的使用注意事項。
首先必須保證手機剩餘存貯空間在 25%以上。至於如何做到,就是刪刪刪唄。
刪除流氓軟體、自啟動軟體。必要時分別設置 app 許可權。
未有改善就只有重刷系統了。注意保留有價值的信息,如通訊錄、照片等等。
重刷系統,一般都會有改善。Trim 在 Android 4.3 的手機上自動會打開,無需操作。
重刷系統還未改善,如果是 Android 4.3 的系統,很有可能就是壞塊太多了,你會發現可用空間變少了很多。有些軟體可以重置 FTL 表,但有風險。建議湊合用或者購買新機,畢竟現在低端手機可以看作快消品了。
壞塊不會死而復生,壞了就是壞了,節哀順變吧。至於壞了的原因見我下面的系列文章。
日常使用時注意不要把存貯空間使用到高於 75%,會加速寫放大,加速壞塊的產生。
本文內容來自「知乎」
轉載請聯繫原作者
歡迎轉發到朋友圈~
知乎熱門文章
拉出來的 shi 再吃進去會怎麼樣?
90 後:一邊養生,一邊慢性自殺
裸睡有什麼好處?


※都說熬夜傷身,那經常熬夜的人身體到底損失了什麼?
※從「劉海屏」想到的:世上最悲哀的事情,莫過於毫無主見
TAG:知乎日報 |