skip to main
|
skip to sidebar
Ognacの雑感(別荘)
本宅 : http://blogs.wankuma.com/ognac/ の別荘(ミラーサイト)です。
2010/02/01
HashSetのコスト
以前、 επιστημηさんが、「Hashすげー」http://blogs.wankuma.com/episteme/archive/2009/12/06/183571.aspx
で、HashSetの早さを報告されています。
C#でも 3.5から導入されいて、重複要素の排除などに重宝しています。
C#3.0以前で同様のことをするには Dictionary
で行えます。 KeyとValueに同値をセットすれば使えますが、Vの部分に冗長性が出ます。 速度コストが気になり試行して見ました。Value部の冗長性がないので、「コスト安であろう」 と勝手に期待してましたが... ▼▼▼テスト結果▼▼▼ AMD64*2:4600+ 2.4G ----------------------------------- mSec mSec ▼回数: 1▼ dict
: 0 追加数[ 1] Hash
: 38 追加数[ 1] ▼回数: 10▼ dict
: 0 追加数[ 10] Hash
: 1 追加数[ 10] ▼回数: 100▼ dict
: 0 追加数[ 87] Hash
: 0 追加数[ 87] ▼回数: 1000▼ dict
: 0 追加数[428] Hash
: 0 追加数[428] ▼回数: 10000▼ dict
: 2 追加数[499] Hash
: 2 追加数[499] ▼回数: 100000▼ dict
: 20 追加数[499] Hash
: 16 追加数[499] ▼回数: 1000000▼ dict
: 106 追加数[499] Hash
: 88 追加数[499] ▼回数: 10000000▼ dict
: 862 追加数[499] Hash
: 948 追加数[499] ▼回数:100000000▼ dict
:8653 追加数[499] Hash
:9196 追加数[499] 僅かですが、「Dictionary<> のほうが早い」場合もありますが、有意差はないようです。 内部の実装がどのようになっているかは、知らないのでずか、同じツリー構造で格納しているのなら、差はもっと小さいと思いますが違うのかな。 これくらの差なら、HashSetを使う価値はありますね。 NameValueCollectionクラスという、Dictionaryの同一キーに対する要素を複数保持できるモノがありますが、知られることなく埋没されていますね。 Dictionary< key , List
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
ブログ アーカイブ
▼
2010
(150)
►
10月
(11)
►
9月
(13)
►
8月
(15)
►
7月
(16)
►
6月
(18)
►
5月
(14)
►
4月
(16)
►
3月
(15)
▼
2月
(17)
学習用Oracle11g
アップロード・コントロールのデフォルト値
金剛組~世界最古の会社
のさ言葉
携帯向サイトは静的
アップロード・コントロールの表示と動作可否
外国人と箸
サーバーラックの破棄は勿体ない
for文のループ変数のiは、iterationのi (?)
安・近・短なヘアカット
あ゛
合鍵
鍵を施錠したか...薬罐の火を消したか..
郡....不思議な存在
県名の有無
ラーメン缶自動販売機
HashSetのコスト
►
1月
(15)
►
2009
(40)
►
12月
(16)
►
11月
(15)
►
10月
(9)
自己紹介
ognac
詳細プロフィールを表示
0 件のコメント:
コメントを投稿