はじめに
http://japan.unity3d.com/unite/unite2016/
Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」
の講演において、Dictionaryのキーに列挙型を使用した場合、
ボックス化が発生してしまい、メモリを余分に消費してしまうとのことだったので
ボックス化を回避するためにIEqualityComparerを使用した場合と
使用しなかった場合でどのくらい速度に差が出るのか調べてみました
検証用スクリプト
設定時間(秒)の比較
方法 | 1,000回 | 10,000回 | 100,000回 |
---|---|---|---|
IEqualityComparer未実装 | 0.001121163 | 0.0028061270 | 0.05112016 |
IEqualityComparer実装 | 0.000123620 | 0.0009272099 | 0.01742023 |
まとめ
IEqualityComparerを実装した方が速いようです