問題はSDのクラス表記、シーケンシャルI/O性能を示すだけで、実際にアプリケーションストレージとして使う時に重要になるランダムI/O性能は、まあコントローラとの相性もあるようなのですが、公開されていないのですよね。昔、windowsのready boost使いたくて少々調べてみたのですが、実際に使って見ないと判らない、ということでした。Windows時代には純然たる補助記憶でしかなかったSDですが、Android時代では主記憶装置、ならば重要な指標になるランダムI/O性能が公表されて然るべきだと思います。
さて、リンク先の論文(PDF)読んでみました。評価対象のアプリはウェブブラウジング、アプリのインストール、GoogleMap、Facebook、Emailだそうです。あまりI/Oに縁が無いようなアプリも含まれているところがミソでしょうね。で、結論は
・ストレージの性能がアプリケーションの性能に影響する
スマホなんかの場合、ネットワーク、CPUがボトルネックになっていると言われていたのですが、ストレージの影響が非常に大きかったそうです。WiFiでのウェブ閲覧で187%、最低のフラッシュでは2000%になると言っています。
・スピードクラスは関係ない
SDにはスピードクラスがマークされていますが、これはシーケンシャルI/O性能、アプリに影響するのはランダムI/O性能、上位クラスのSDよりも下位クラスのSDの方が早かったケースもあったそうです。
・低速ストレージはCPUも無駄使い
アプリの速度を落とすだけでなく電気も無駄に消費してしまうようです。
・アプリケーションの知識は効率的な解をもたらす
これは開発者向けですかね。アプリケーションがどのようにストレージを使うかが判ればハードソフトでチューニングできる、といったことでしょうか。
論文は三段構成で、1:測定方法、2:実測の結果、3:モバイルデバイスの性能向上のための提案、といった構成になっているようです。一般ユーザとして興味があるのは実測値、ということで実測値のところをピックアップしておきます。
まずはSDカードのI/O性能(CrystalDiskでの測定値)
Class | Desktop | Smartphone | |||||||
Sq W | Sq R | Rn W | Rn R | Sq W | Sq R | Rn W | Rn R | ||
Transcend | 2 | 4.16 | 18.03 | 1.18 | 2.57 | 4.35 | 13.52 | 1.38 | 2.92 |
RiData | 2 | 7.93 | 16.29 | 0.02 | 2.15 | 5.86 | 11.51 | 0.03 | 2.76 |
Sandiski | 4 | 5.48 | 12.94 | 0.68 | 1.06 | 4.93 | 8.44 | 0.67 | 0.73 |
Kingston | 4 | 4.92 | 16.93 | 0.01 | 1.68 | 4.56 | 9.84 | 0.01 | 1.94 |
Wintec | 6 | 15.05 | 16.34 | 0.01 | 3.15 | 9.91 | 13.38 | 0.01 | 3.82 |
A-Data | 6 | 10.78 | 17.77 | 0.01 | 2.97 | 8.93 | 13.49 | 0.01 | 3.64 |
Patriot | 10 | 10.54 | 17.67 | 0.01 | 2.96 | 8.83 | 13.38 | 0.01 | 3.72 |
PNY | 10 | 15.31 | 17.90 | 0.01 | 3.56 | 10.28 | 14.02 | 0.01 | 3.95 |
評価対象アプリの性能値の方は数値無しでグラフだけです。基本、TranscendとSandiskはどのアプリでも良い成績を出しています。ランダムライトの性能がモロに響いているようです(がTranscend、Sandiskでは余り差が無いようでした)。これを見た後、泡喰って自分のスマホのSDカード、どこのだったかを確認しましたよ。Sandiskのが入っていたのでかなり安心しました。でもってどのアプリでも最悪がKingston、良くワゴンで安売りしていますが、スマホのストレージとして買ってはいけない代物のようです。
補足:Usenixでの発表のビデオがありました。30分の動画です。
0 件のコメント:
コメントを投稿