2008年01月27日

SQLite性能評価その5

SQLite性能評価その4」の続きです。 SQLiteインメモリデータベースと、C++標準ライブラリのコンテナの性能を比較してみることにします。
ややこしい処理を何もしていない分C++標準ライブラリの方が圧倒的に速そうですが、実際のところはどうでしょうか。

測定環境

測定環境は前と変わっていませんが、もう一度書いておきます。

コンパイラVisual C++.NET 2003デフォルトコンパイラ
OSWindows XP Professional SP2
CPUAMD Athlon 64 3700+
メモリ2GB
HDDSeagate ST3300622AS
プロジェクト設定デフォルトRelease構成
SQLiteバージョン3.4.2 (not define THREADSAFE)
boostバージョン1.33.1

インメモリデータベースvsC++標準ライブラリコンテナ

インメモリデータベースのコードは、前回最速だったCase5を使用します。

C++標準ライブラリのコンテナを使ったコードは以下の通りです。これをCase6とします。 std::listを使いました。おまけでboostも使いました(標準ライブラリ相当ということで・・・)

std::list<boost::tuple<std::string, int> > Database;
// 処理時間測定開始
for (int i = 0; i < 100000; ++i) {
  Database.push_back(boost::make_tuple(StringList[i], ValueList[i]));
}
// 処理時間測定終了

測定結果

測定結果は以下のようになりました。
処理時間

C++標準ライブラリのコンテナを使った方が6倍速いです。結構な差だとは思いますが、桁が違うところまでは行かないんですね。 SQLite大健闘ではないかと思います。

投稿者 MASATO : 2008年01月27日 20:16 | トラックバック
コメント

私もC++のほうが速いと思いますが実際やってみないとわからないですね。

Posted by: 初期化小娘 : 2008年01月27日 20:43
コメントする









名前、アドレスを登録しますか?