読者です 読者をやめる 読者になる 読者になる

コガネブログ

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

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

Unity Unity5.3 C#

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

類似記事