Profiler
enum を int にキャストするときには (int)enum と enum.GetHashCode() の2つがある(はず) しかしながらどちらが早いのか、int をそのまま扱うのと比べてどれくらい遅いのかを調べたことがなかったので調べてみる Unity Editor 上 で .NET 4.x にして Prof…
Unity では 以下のような拡張メソッドを利用して Transform の位置を変更することがあるが これを何度か呼んだ場合 GC がどうなってるかを調べる public static class TransformExtension { public static void SetPositionY(this Transform self, float val…
new List<T>(1) のように List のインスタンス生成時に 要素数を指定すると 予め 領域を確保することができるため突然のGC を防ぐことができる 初期化のタイミングだと空の場合は 40B 指定した場合は 76 + サイズ * 4B (int の場合) 指定したサイズに満たない場</t>…
Primitive型 int 型のからリストを ToArray してみてGCを見てみる var list = new List<int>(); // 32B list.ToArray(); 次に 1要素だけ入れて見てみる var list = new List<int>(){0}; // 36B list.ToArray(); 36B になった int 型が 4B なのでおそらく要素分だけゴミ</int></int>…
何度も計測しているわけではないのと階層の違いで速度は違うと思います parent に直接値を入れる以外は何度も利用するわけじゃなければ 使っても問題なさそう Transform.parent Transform.SetParent Transform.SetSiblingIndex Transform.SetAsFirstSibling …
Material に パラメータをセットする際には Material.SetColor や Material.SetVector などを利用する この際に第一引数には string と int を指定することができる string の場合でも 結局 int に変換されるのですが、この変換処理が遅いらしいので調べてみ…
コードをプロファイリングするために Profiler.BeginSample Profiler.EndSample が用意されている Unity - Scripting API: Profiling.Profiler.BeginSample コードのプロファイリングするには以下のように記述すればいけますが private void Awake() { Profi…