Skip to content

todorok1/DictionarySpeedCheck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DictionarySpeedCheck

C#でDictionaryを扱う際に値の追加や値の取得を行う場合の速度を比較するためにテスト用のコードを作成しました。

値の取得

TryAddのメソッドを使用して値を追加するケース、ContainsKeyのメソッドを使用してキーの有無を確認してから値を追加するケースを確認しています。 また、既に辞書にキーが存在する場合の速度計測も行うことができます。

値の取得

TryGetValueのメソッドを使用して値を取得するケース、ContainsKeyのメソッドを使用してキーの有無を確認してから値を取得するケースを確認しています。 存在しないキーを指定する場合の速度計測も行うことができます。

使い方

UnityにてSampleSceneを開いて、ゲームを実行することで各ケースの速度比較を行うことができます。

実行後の1フレーム目は別クラスの諸々の処理が重なることが多いため、フレームカウントが指定の値になったタイミングで処理を実行します。

DictionarySpeedのゲームオブジェクトにアタッチしてあるDictionarySpeedTestのスクリプトからフレームカウントの指定、平均をとる試行回数を指定できます。

実行後はAssetsフォルダの下にcsv形式で実行結果のファイルが出力されます。

計測対象

値の追加

  • TryAddのメソッドを使用して値を追加
  • TryAddのメソッドを使用して値を追加(キー重複あり)
  • ContainsKeyのメソッドを使用してキーの有無を確認してから値を追加
  • ContainsKeyのメソッドを使用してキーの有無を確認してから値を追加(キー重複あり)

また、Dictinaryの要素数が変更されることでCapacityの変更が発生するため、格納用Dicrionaryを初期化する際にCapacityを指定するモードもあります。(サンプルでは値の追加時にCapacityを指定するケース、指定しないケースの2パターンを実行しています)

値の取得

  • TryGetValueのメソッドを使用して値を取得
  • TryGetValueのメソッドを使用して値を取得(存在しないキーを指定)
  • ContainsKeyのメソッドを使用してキーの有無を確認してから値を取得
  • ContainsKeyのメソッドを使用してキーの有無を確認してから値を取得(存在しないキーを指定)

About

C#の辞書への値の追加、辞書からの値の取得の速度を比較するコード集

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages