作者gpc (gpc)
看板Android
标题Re: [软体] SD卡加速程式实测
时间Sun Apr 17 14:28:56 2011
※ 引述《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
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.10.183
1F:推 naviblue:有神快拜!! 04/17 14:33
2F:推 t1190t:神出现了( 拜 04/17 14:51
3F:推 diecorroder:哇~~ 感谢指教~~~^^ 04/17 15:45
4F:推 abcliou:超棒!! 04/17 15:46
5F:推 cloud2211s:推这篇~~ 04/17 15:51
6F:推 jansin7456:好文不推吗? 04/17 15:53
7F:推 RouterHsieh:这一篇应该发到AndroidDev去吧XDD 04/17 16:01
8F:推 busbuster: 04/17 17:07