SD卡加速程式實測 - Android

Table of Contents

※ 引述《diecorroder (該死的,認床睡不著= =)》之銘言:

首先 他的原理是去改

/sys/devices/virtual/bdi/default/
/sys/devices/virtual/bdi/179:8/
/sys/devices/virtual/bdi/179:0/

這三個地方 裡面有 read_ahead_kb 這個device參數而已

而這個參數是在kernel裡面的 /include/linux/mm.h http://0rz.tw/kYEOx 裡面的1173行

所以你的kernel如果不是官方 可能會被調過(調成??) 所以就不見得需要這東西

--------------------------------------

而這個read buffer 是否會影響速度呢?

答案是會 但不明顯 要重申一點 測速軟體 就向你買保險一樣 看起來心安而已

並沒有太大的意義 有需要我可以寫一個快樂表...XD 測出來都飛快

你可以用 "SD Card Speed Test" 來測,我實側的結果是沒任何改變

至於有些測速軟體會有改變 是因為他們寫法的問題 這我不太清楚

--------------------------------------

另外buffer太大 會很浪費記憶體

你簡單的說你想想看 我要讀記憶卡裡面一張小圖片 10KB

結果還要先開2048KB(2MB) 的空間來讀 如果我同時開+讀100張小圖片(fopen+fread)

那等於是浪費掉 100*(2048-128)=192MB

你的機器有這麼大的記憶體可以浪費嗎? 我想是沒,因此會 out of memory 程式會爆掉


但你沒辦法知道你跑的程式 他是否有特殊需求 需要同時讀一堆檔案(?)

就我所知 應該是很少?

大部分應該都是只會用一條thread讀, 這樣只會增加一點點記憶體浪費

所以用起來應該是還好


大家要知道各家廠商的kernel 一開始就設128 是有他的道理的


----------------------------

簡單的說 這東西 雙面刀刃 設越大 會越浪費記憶體 設太小 會讀卡慢

但設很大 也不見得會快到哪去


我個人是建議

1.不用盲目的使用測速軟體
2.你可以調整大小 搭配你使用有"讀取"SD卡相關的程式(EX:遊戲) 看是否有明確的改變
3.千萬不要調太大


我個人128與2048 對我來說 感覺都一樣?


-----------------------------

附註:

如何查目前buffer多大?
用電腦cmd打
"adb shell cat /sys/devices/virtual/bdi/179:0/read_ahead_kb"

(179:0 是desire的 不同機子 可能不同)

你也可以直接用adb修改

adb shell
su
echo 2048 > /sys/devices/virtual/bdi/179:0/read_ahead_kb






--
男人都偏好女色,女人都偏好男色
但是PDA千萬不要帶有顏色,不管你是藍色,綠色
請支持我~記帳小冊!
Http://gpcsoft.24cc.cc

--

All Comments

Sierra Rose avatarSierra Rose2011-04-18
有神快拜!!
Hamiltion avatarHamiltion2011-04-18
神出現了( 拜
Mary avatarMary2011-04-18
哇~~ 感謝指教~~~^^
Hedda avatarHedda2011-04-22
超棒!!
Olive avatarOlive2011-04-22
推這篇~~
Skylar Davis avatarSkylar Davis2011-04-25
好文不推嗎?
Dora avatarDora2011-04-28
這一篇應該發到AndroidDev去吧XDD
Liam avatarLiam2011-04-30