unite2016の1日目のメモ

こんにちは。ヤマヤタケシです。
Unite2016に行ってきました。
自分のためのメモを残します。
今回は、最適化の話を中心に聴講しています。

■モバイル端末向けのUnityアプリケーションの最適化実践テクニック
資料が公開されてた。こっちを見た方が確実です。
http://japan.unity3d.com/unite/unite2016/files/DAY1_1330_Room1_HarknessDundore_Long_Big.pdf

下記、自分のメモ。

・最適化の前にプロファイルだ!
iOSならInstrumentsっていうXCODEについているやつが良い。
AndroidならVTuneとか、Snap Dragon Profilerとかいいよ。

あと、メモリ関連ならUnity5.3以降でつかえるMemoryProfilerってのを公開したよ。
https://bitbucket.org/Unity-Technologies/memoryprofiler
これかな。
ダウンロード、アセットフォルダに入れる、Edit->Window->MemroyProfile?->Take Snapshot
かな。

・GCが発生しないようになるべく小さいメモリ確保を避けるべし。
1. MonoのHeapが広がると、GCの発生間隔が広がって、長い時間ブロックしちゃうらしい。
2. List, HashSet, StringBuilderとかは再利用しよう!
3. Foreachは使うな!
4. APIは変数に見えても実はプロパティで中で関数が呼び出されている場合があるから、キャッシュして使おう。例えば、Input.touches[] とか。

・ロード時間を短くしよう
1. Unit5.3からJasonUtilityClassesが入ったよ。使ってね。
2. Text->Binary Dataにしよう。Scriptable Objectに変換するんだ!
3. 読み込みをスレッドにするんだ!ただし、Pure C#なものだけ。すごい注意すること。

・いろいろキャッシュしよう
MonoBehaviorの起動時によく使う遠い変数なんかをキャッシュしよう。
メモリ確保をUpdate内で発生しないように予め確保しよう。

一旦ここまで。

そんじゃまた。