コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Dictionary で IEqualityComparer を使用した場合と使用しなかった場合のどちらが高速か検証しました

はじめに

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を実装した方が速いようです

関連記事