「SQLite性能評価その1」の続きです。
SQLiteは、ファイル名を":memory:"とすると、インメモリデータベースを構築します。
このとき、前回のCase1とCase2の処理時間を測ってみました。
測定環境は前回と同じです。
コードは、前回のCase1とCase2の以下の部分を、
sqlite3_open("testdb.sq3", &Db);
以下のように置き換えるだけです。
sqlite3_open(":memory:", &Db);
それぞれCase1(Memory)、Case2(Memory)と呼ぶことにします。
測定結果は以下のようになりました。
データベースのopen、closeや、CREATE TABLEの時間は含めていません。
ほとんど差はありません。インメモリデータベースの場合は、トランザクション処理を明示的に指定しなくても問題はないようです。
Case2だけ前回との違いも比べてみました。
25%減です。
ファイルアクセスがなくなったのに思ったより速くなりません。
というより、ファイルアクセスありでも速い、と言うべきなんでしょう。
「SQLiteの性能評価その3」に続きます。
投稿者 MASATO : 2007年10月05日 06:53 | トラックバック