2013年4月6日土曜日

SC-01EのmicroSDカードの読み書きを速くする

L-07Cでの実験で、そこそこ速度の出るmicroSDカードには効果が出ないことが実証されているのだが、動画鑑賞でのプチフリが解消できないかと思いSD Spped Increaseを使いバッファサイズを変えてみることにした。

ところがSD Spped Increaseは、外部microSDカードのバッファは設定できるが、内蔵のSDカード領域へは設定ができないのね。

色々調べてみると、

/sys/devices/virtual/bdi/179:32 ← 内部SD
/sys/devices/virtual/bdi/179:0  ← 外部SD

配下にある read_ahead_kb にバッファサイズを書き込んでやればいいことが判明。デフォルトだと、どちらも 128 が書き込まれているので、それぞれ 2048 に変更して計測をしてみる。(色々細かく設定すればいいのだが、面倒なのでそこまでは追い込まない。)
前回はSD Toolsで計測したが、今回は内部SDの計測ができるA1 SD Benchを使用した。

128 2048

バッファサイズ128k

バッファサイズ2048k

 

バッファサイズ128k

バッファサイズ2048k

内部SD Read

15.70MB/s

20.74MB/s

            Write

8.18MB/s

8.69MB/s

外部SD Read

26.13MB/s

27.82MB/s

            Write

22.71MB/s

19.56MB/s

後は echo 2048 > read_ahead_kb をどこに書き込むかだなぁ。SO-03D は /system/etc/hw_config.sh に書き込めば ok だったけど、SC-01E には該当ファイル無いし。調べなくっちゃ。取り敢えず再起動するまではバッファサイズの変更は有効のはずなので、プチフリ解消するかを実験することにする。

2013/04/12 追記

起動時有効化はシェルスクリプトを作成 + tasker のコンボで解決しました。んー、tasker って使いこなせていないけど、色々機能があって面白い。ちなみに作成したシェルは下記のもの。んー、ベタだな(笑)

#!/system/bin/sh

if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]
    then
    echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;
fi;

if [ -e /sys/devices/virtual/bdi/179:32/read_ahead_kb ]
    then
    echo "2048" > /sys/devices/virtual/bdi/179:32/read_ahead_kb;
fi;

プチフリはどうかというと、概ね解消した感じ。もしかしたらプチフリではなく、Bluetooth で音声を聞いているため外乱により一瞬音声が途切れたことをプチフリと感じているのかもしない。だとしたら直っているわけもなく、所謂プラシーボ効果なのかもしれないけど :-)

3 件のコメント:

  1. そうなんだよね。私も最近、インターナルSDと、エクスターナルSD対応の端末をGETしまして。
    デフォルトだと、大抵のバッファ書き換えアプリはインターナルをいじろうとして、無意味で。(SDincとかその辺のRoot系)
    個別にしたいと思っていたので、参考になりましたよ!。
    が、私のほうは、さらに問題が、Link2SDがインターナルを指している。
    ってことは、マウントスクリプトごと、自作しかないのかな?などと。
    そもそも、内蔵SDにパーティション切るなんて危な過ぎですし。
    全パーテなら、OKかもしれないが。
    私が触った機種は、内蔵SDと追加SDをオプションで切り替えられるものの、
    単に、マウント位置を入れ替えているだけみたいで、物理位置は同じでした。
    しかも、内蔵SDはやけに早いので、効率を考え中。

    返信削除
    返信
    1. 匿名さん、こんばんは

      マウントスクリプトごととなると少々面倒ですね。拙者の記事が少しでも参考になると幸いです。

      削除
  2. Rootあるなら、確実にSSHサーバー入れて、PCから、Linuxコンソールでやるほうが、
    いろいろと楽ですね。
    が、179:*が沢山ある機種みたいで、6個もいまして。
    これの調べ方を現在調査中です。
    が"MemoryInfo-SwapCheck"っていうアプリでDISKのインフォを出すと、
    "/dev/block/void/179:194 -> /data/sdext2"
    的なのが、ダラダラと、なんとなく、ゲット?と思いながら、まだ、見てるだけですが。
    ZRAMが標準の機種みたいなんですが、ほっとくと、どんどん圧縮してメモリを
    増やしているみたいで、もっさりしてます。素直にSDにSWAP切ってそのまま書き出してから、OSが暇なとき、再度SD->ZRAM(メモリ)で圧縮させたほうがなんとなく、
    パフォーマンスがあがるのかと、調査中です。
    なぜか、SDにスワップ切れないので、調査してる所でした。
    SDカードが3パーティションある時点で、私は重症患者かもしれませんが^^
    FAT(通常のやり取り)/EXT3(Link2SDの追い出し用)/EXT3(SWAP用)
    が、本体に1.6GBの内蔵SDがあるようで、逆に設定が面倒になってます^^
    がんばりま~す

    返信削除