ハッシュコンテナ - Part2

Google Sparse Hashのversion 0.9.1がリリースされました。

前回の記事ではversion 0.6をLinux上(GCC)で性能比較を行いましたが、今回はversion 0.9.1をWindows上(Visual C++ 2005)で性能比較を行ってみました。

最適化オプションは/O2で、処理時間の測定にはWindows Server 2003 Resource Kit Toolsのtimeitを使用しました。
#include <iostream>
#include <sstream>
#include <map>
#include <hash_map>
#include <google/sparse_hash_map>
#include <google/dense_hash_map>

inline std::string toString(int n)
{
  std::stringstream stm;
  stm << n;
  return stm.str();
}

int main()
{
#if 1
  std::map<std::string, int> data;
#endif
#if 0
  stdext::hash_map<std::string, int> data;
#endif
#if 0
  google::sparse_hash_map<std::string, int> data;
#endif
#if 0
  google::dense_hash_map<std::string, int> data;
  data.set_empty_key("");
#endif
  
  for (int n = 0; n < 1000000; ++n) {
    data[toString(n)] = n;
  }
  
  for (int n = 0; n < 2000000; ++n) {
    data.find(toString(n));
  }
  
  return 0;
}
処理時間順の測定結果は次のとおりです。
google::dense_hash_map
Elapsed Time:     0:00:09.718
Process Time:     0:00:09.781

std::map
Elapsed Time:     0:00:10.734
Process Time:     0:00:10.875

stdext::hash_map
Elapsed Time:     0:00:10.937
Process Time:     0:00:11.046

google::sparse_hash_map
Elapsed Time:     0:00:13.906
Process Time:     0:00:13.828
前回同様、最も速かったのはdense_hash_mapでした。
stdext::hash_mapは意外にも、std::mapと大差ない結果でした。

最後に、ハッシュに限ったことではありませんが、ライブラリの処理速度は実装に依存します。
使用の際には、自分の処理系で、プロファイリングを行うことをお薦めします。

関連記事
ハッシュコンテナ
ハッシュコンテナ - Part2
ハッシュコンテナ - Part3

人気blogランキングへ にほんブログ村 IT技術ブログへ FC2ブログランキングへ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://articles.blog79.fc2.com/tb.php/34-4b4f276b
この記事にトラックバックする(FC2ブログユーザー)

Google Sparse Hash

Google Sparse Hashなんてのがあるんですね。 The Articles - Elegant C++ ハッシュコンテナ The Articles - Elegant C++ ハッシュコンテナ - Part2 によるとWindowsでもLinuxでも使えるみたいで、ポータビリテ...

« 前頁へ移動する  | HOME |  次頁へ移動する »

ブログ内検索


このサイト内ウェブ全体
この検索は「緑のgoo」を利用しています

カテゴリー

未分類 (0)
C++ (24)
Books (11)
Bookmarks (1)

最近のエントリ

移植性の高いコードを書くためには (02/16)
ハッシュコンテナ - Part3 (01/10)
ハッシュコンテナ - Part2 (10/29)
日本語によるC++0xに関する記事 (10/23)
foreach (08/03)

Books

C++
プログラミング
デザインパターン
オブジェクト指向

RSSフィード

最新記事のRSS
最新コメントのRSS
最新トラックバックのRSS

アーカイブ

2008年02月 (1)
2008年01月 (1)
2007年10月 (2)
2007年08月 (1)
2007年07月 (2)
2007年06月 (1)
2007年05月 (2)
2007年04月 (1)
2007年03月 (2)
2007年02月 (2)
2007年01月 (3)
2006年12月 (4)
2006年11月 (8)
2006年10月 (6)

連絡先

email.png

Amazon