DELL Streakの内蔵ストレージを高速化する?
ちょっと面白いネタ(ただし未確認)を拾ったのでエントリ。もしかしたらDELL Streakが高速化するかもしれません。
内部microSDを交換したからか、元々その程度の安定度なのかは判りませんが、なんだかWEBブラウザがよくフリーズするんですよね。標準のものも、後から入れたFirefoxもです。10秒くらい放っておくと復帰するので、何か負荷が掛かっているように見えます。
WEBブラウザが影響を喰らいそうな部位といえば、やはりストレージな訳で、ならばストレージを速くすれば解決するんじゃないかとAndroidマーケットを探していたところで見つけたのが、SD-boosterというSDカードへのアクセスを高速化するアプリ。DELL Streakは内部ストレージもSDなので、もしかしたら効果があるかもしれないと思って実験開始。ちなみに、他にも同種のアプリはいくつかありますが、余計な広告が入っていなかったのでコレにしました。
入れて設定を行うと確かにSDカードの読み書きベンチマークの成績が1.5倍くらいに上がります。なんだか不思議だったので、どういう仕組みで動いているのか調べてみたところ、元々Androidの(というかLinuxの?)システムが持っているキャッシュ(先読みバッファ)の設定を変更しているようです。そしてネタ元のxda-developersのページで見つけたのが設定のためのシェルスクリプト。ちなみにこれは2つあるうちの Version 1 だそうで。
#!/system/bin/sh if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ] then /system/xbin/echo "128" > /sys/devices/virtual/bdi/179:0/read_ahead_kb; fi;
Linux(というかPC-UNIX全般?)では、ファイルシステムを介してデバイスにアクセスする仕組みがあるので*1、要するにこのスクリプトで利用しているファイルに設定値を書き込むと、そのデバイスの設定が変わるし、読み出せば設定が読み出せるという訳です。
んじゃ、ということでおもむろにDELL Streakでターミナルを起動。
$ su # cd /sys/devices/virtual/bdi/179:0/ # ls uevent subsystem read_ahead_kb min_ratio max_ratio power # cat ./read_ahead_kb 128 # echo 1024 >./read_ahead_kb # cat ./read_ahead_kb 1024
おお、書き換わった。じゃあこれでSD-boosterの方でも設定値が変化してるのかと思って起動して見てみると、SD-booster側の数値はデフォルトの128のまま。もしかしたら元ネタのページに書いてある別パターンのVersion 2スクリプトなら設定出来るのかな? と疑問を感じつつ、ちょっとディレクトリを徘徊しようとしたんですが……。
# cd .. # ls 1:0 (省略) 31:0 179:0 179:16
むむ? いきなり感あり。なんだか同じ179番のディレクトリがあるなぁ、ということで調査。
# cd 179:16 # pwd /sys/devices/virtual/bdi/179:16/ # ls uevent subsystem read_ahead_kb min_ratio max_ratio power
中のファイル構成まで同じです。じゃあ、read_ahead_kbはどうなってるのか?
# cat ./read_ahead_kb 128 # echo 1024 >./read_ahead_kb # cat ./read_ahead_kb 1024
こっちの設定は書き変わっておらず(デフォルトの?)128になっていて、書き換えると179:0と同様に書き換わります。書き換えた後、もしやと思って見てみると、今度はSD-boosterの設定値も書き換わっていました。どうやら、DELL StreakのmicroSDスロットは179:0の方ではなく、179:16の方みたいです。おそらく、Version 2の設定方法を使うと、こういうハードウェアごとの差異をすっ飛ばして設定が出来るのでしょう。
それはそれとして、じゃあ179:0は一体何なのかと考えると、もうこれは内部microSDスロットくさいという結論にたどり着くんですよね。
内部microSDのキャッシュが設定できるとしたら、これは凄く面白い。しかし、この部分の設定に対応しているアプリがあるはずもなく、今のところ手作業でしか設定できないのと、内部ストレージの速度を測るベンチマークソフトが無いので、性能の変化の確認が出来ないのが問題。さて、どうしたもんか。