iPad2 Disk/IO Benchmark

目的

iPad2 の記憶領域に対して mmapシステムコールがどの程度有効なのかを検証してみた。
結果として iPad2 でも通常の Disk/IO に対して mmap を使用することで約8倍高速化される。

プログラム

8バイトのキー("00000000"〜)と同じく8バイトの値を Key-Value Store に出力するだけのプログラムである。
繰り返し回数はパラメータで指定できるようにしてある。

    for (int i = 0; i < entries; i++) {
        char ckey[9];
        snprintf(ckey, sizeof(ckey), "%08d", i);
        void* val = ckey;
        
        if (nio_put(hdb, ckey, sizeof(ckey)-1, val, sizeof(ckey)-1) != 0) {
            NSLog(@"entryKVS nio_put() error");
            break;
        }
    }

ベンチマーク

通常の Disk/IO と mmap を使用したベンチマーク結果を掲載しておく。
数値は処理時間をミリ秒で表したものである。

【評価マシン】

iPad2 (memory 16GB)
iOS 4.3

Times Disk/IO mmap Ratio
10,000 572 90 15%
100,000 5,433 680 12%
1,000,000 63,404 7,546 11%

Author: YAMAMOTO Naoki
Last modified: 2011/09/24