UnityUnityのProfilerでそのフレームにおけるメモリ割り当てを分析する方法です。Profilingメインスレッド以外はプロファイリングできない(Unity2019.2までは)計測はビルド後に行うべき参考Unity2018.4.0手順まずProfilerでメモリ割り当てを見る手順をまとめます。ProfilerからProfilerを開きます。Profilerを開いたら、ProfilerのRecordボタンを押してUnityを再生します。Usageのグラフ部分をクリックするとそのFrameにおける処理負荷がHierarchyに表示されます。Alloc列に入っている値がそのフレームで割り当てられたメモリ量です。Alloc)をクリックすると降順に並べ替えられます。基本的な手順は以上です。使ってみるそれでは実際にスクリプトを書いてProfilerで計測してみます。以下のようにint型のローカル変数をUpdate()内で使ってみます。}}値型のローカル変数はヒープではなくスタックに乗るので、アロケーションは発生しないはずです。これをProfilerで見てみます。Allocがすべて0Bになっていることが確認できました。次にスクリプトのint型をstring型に変更してみます。}}これをProfilerで見てみます。30Bのメモリ割り当てが発生していることが確認できました。Profilingただこの状態ではどのメソッドで割り当てが起きているか正確にはわかりません。Profileを有効にします。これにより、割り当てを発生させているメソッドを正確に特定できました。メインスレッド以外はプロファイリングできない(Unity2019.2までは)Profilerによるメモリ割り当ての分析はメインスレッドに対してのみ有効です。メインスレッド以外の割り当てを分析したい場合、処理を一時的にメインスレッドに移すか、Profiling.Profiler.BeginThreadProfilingを使ってProfilerに処理負荷が表示されるようにする必要があります。docs.unity3d.comちなみにUnity2019.3からはメインスレッド以外も分析できるようになるらしいです。計測はビルド後に行うべきUnityの内部的なAPIでは、UnityEditorで再生する場合とビルド後に再生する場合でメモリの割り当ての仕方が異なる場合があります。代表的なものはGetComponent()で、これはUnityEditorで再生するとメモリ割り当てが発生しますが、ビルド後に再生した場合はメモリ割り当てが発生しないようです。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。