IReadOnly***系のパフォーマンス危険性について

最適化

IReadOnlyCollectionIReadOnlyListはリストのSet, Clear系を使えなくできるため堅牢なコードにつながります。Unity C#のバージョンが上がるのを楽しみにしてた理由の一つです。

ですがこのinterfaceはパフォーマンスという視点では危険をはらんでいます。

5 Common Misuses of Collections - JacksonDunstan.com
Collection types like List and Dictionary are fundamental tools in C#. Sadly, I keep seeing the same misuses of them in codebase after codebase. Today we’ll loo...
スポンサーリンク

foreachでGCalloc

またかよって感じですが、残念ながら余裕でgcallocします。どうしようもないです。Unity2019.3.0b9 IL2CPP

対策

IReadOnlyListforループならgc allocは発生しません。なのでIReadOnlyCollectionを使わず、IReadOnlyListだけ使うようにしましょう

最適化
スポンサーリンク
masakamiをフォローする
まさかみブログ