高速化メモTweetC#における高速化手段をいろいろ検討した。メモとして書き残しておく。ジェネリッククラスのコレクション.NET2.0で追加されたジェネリッククラスは従来のコレクションクラスより速い。インスタンスを作成した時点で扱える型が決まっているためボクシングの作業が必要ない。ゆえに値型を扱う場合は大幅なパフォーマンス向上が得られる。IListArrayとHashtableデータの羅列から任意のデータを選択する場合に高速に扱うにはどうするか。Hashtableなどが挙げられる。インデックス指定だけで片付けられる問題ならばArrayかArrayListを使うのが最適であると判断できるが、キーと値の2種のオブジェクトを関連付けたい時はやはりHashtableが便利だ。高速であるとも言われている。そこで、キーと値の2種をメンバとしたクラスのArrayとHashtableの速度比較をした。今回はキーにIPAddressクラス、値にはstringを用いてArrayのキー検索は線形探索。結果がひっくり返っている上にかなりの大差が付いている。ArrayList大量のデータならばHashtableが有効である。ちなみにHashtableは値型を扱わない場合はジェネリッククラスのDictionaryと速度はほとんど変わらなかった。TweetC#高速化SNSでもご購読できます。TwitterでフォローするFeedlyでフォローするたかおファン(surface0)1983年生まれ。趣味はエレキギターなど。最近やってるゲームはWoWs、プリコネ、デレステ。