コガネブログ

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

【Unity】デリゲートを指定する時の GC Alloc や処理時間の検証結果

検証1

検証用スクリプト

検証結果

f:id:baba_s:20200212164755p:plain

パターン GC Alloc Time ms
A: static 関数を直接指定 1.1 MB 1.38
B: static 関数をラムダ式で指定 0 B 0.08
C: インスタンスの関数を直接指定 1.1 MB 5.73
D: インスタンスの関数をラムダ式で指定 1.1 MB 1.44

f:id:baba_s:20200212165204p:plain

コンソールアプリケーションだと処理にかかる時間は上記の通り

検証2

検証用スクリプト

検証結果

f:id:baba_s:20200212162445p:plain

パターン GC Alloc Time ms
A: 変数をキャプチャしないデリゲート 0 B 0.08
B: 変数をキャプチャするデリゲート 112 B 0.07
C: 変数キャプチャを回避するデリゲート 0 B 0.08

参考サイト様

http://qiita.com/Temarin/items/d851e101cbce6dd92d86

http://qiita.com/Temarin/items/4ac0de4f395dcecf5eec

関連記事