記事
- Action デリゲートは 104B の GC Alloc が発生するが、インターフェイスであれば発生しない
- デリゲートを指定する時に関数名ではなくラムダ式を使用することで GC の発生を抑える
- 高速かつボックス化が発生しない Dictionary「BetterDictionary」紹介
- Dictionary のキーに列挙型を使用した時のボックス化によるメモリ消費を回避する
- string や StringBuilder よりもメモリ割り当てが少なく高速な文字列クラス「FastString」紹介
- string の連結を StringBuilder に置き換えてパフォーマンスを改善できる「StringBuilderTemporary」紹介
- GC の発生を抑える ~文字列の操作編~
- GC の発生を抑える ~リストの操作編~
- Unity におけるゲーム開発でガベージコレクションを最適化する(翻訳)
メモ
- Dictionary のキーに列挙型を使用する場合は必ず IEqualityComparer を使う
- デリゲートを設定する時はラムダ式もしくは static 関数を使用する
- LINQ を for 文に置き換える
- 文字列連結を StringBuilder に置き換える
- 列挙型の ToString は使わない(拡張メソッドを自前で定義して使用する)
- Text コンポーネントで string.Format( "{0}/{1}" ) のようにテキストを設定する場合は Text コンポーネントを2つ用意する