2011年04月05日

KZM-A9-DualでSDカードのブート時間の比較

KZM-A9-DualボードをSDカードから起動するときには、SDカードの種類によって時間にばらつきがあります。その情報を集めてみました。

以前の記事でKZM-A9-DualボードをNORフラッシュ、eMMC, SDカードのそれぞれでAndroidの起動時間を計ってみましたが、これと同じ方法でSDカードを何種類かで試しました。
(電源投入からAndroidのブートアニメーションが終了するまでの時間。)

カードの種類 1回目 2回目 3回目 4回目 5回目
SD(class不明, 2GB) 56秒 28秒 24秒 22秒 24秒
SD(class10, 4GB) 71秒 31秒 27秒 27秒
SD(class6, 4GB) 82秒 38秒 32秒 30秒
micro SD(class4, 8GB) 105秒 43秒 33秒 33秒
micro SD(class4, 4GB) 202秒 56秒 46秒 40秒 40秒

1回目の起動では全てのクラスファイルの最適化の処理(DexOpt)が実行されるので、その分遅くなります。(コンソールでlogcatするとその様子がわかります。) 2回目ではまだそれが少し残っているようで3回目くらいで安定します。
サンプル数は少ないですが、以下のようなことが読み取れます。
  • SDとmicro SDではmicro SDのほうが遅い。
  •  
  • classの数字はそれほど関係がない。
起動の時にはシステムコールmmapでマッピングされたプログラムの領域を実際にアクセスしたページから順にSDカードからの読み込みが発生します。これはランダムアクセスです。
普通SDメモリカードはデジカメで使うときには数MB単位の画像データのシーケンシャルアクセスが主体です。SDカードのclassもランダムアクセスでなくてシーケンシャルアクセスの速度で規定されています。そのためにclassの数字が大きくても必ずしも起動時間が短くなっていません。micro SDはサイズを小さくするために何かを犠牲にしていますが、どうやらランダムアクセスの速度が犠牲になっているようです。

関連するページ
KZM-A9-Dualボードのいろいろなブート方法
KZM-A9-DualのAndroidでSDIOスロットのSDカードを使用する方法


トラックバックURL

コメントする

名前
 
  絵文字
 
 
記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード