Unity/負荷軽減/Memory
目次
メモリ対策
- プロジェクトを、一旦閉じて開く
- Unityメインメニュー/Windows/Analysis/Profiler/Memory/TotalCommitedMemoryを確認
閉じて、開かないと、メモリが蓄積するので、一度、プロジェクトは閉じる。
MemoryProfilerPackageインストール
- Unityメインメニュー/Windows/PackageManagerで、MemoryProfilerを検索してインストール。
確認
差分確認
Packages/packages-lock.json
+ "com.unity.memoryprofiler": { + "version": "1.1.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.editorcoroutines": "1.0.0" + }, + "url": "https://packages.unity.com" + },
Packages/packages-lock.json
+ "com.unity.memoryprofiler": { + "version": "1.1.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.editorcoroutines": "1.0.0" + }, + "url": "https://packages.unity.com" + },
UnityObjecsの項目
公式:https://docs.unity3d.com/Packages/com.unity.memoryprofiler@1.1/manual/unity-objects-tab.html
Description Displays the name of each individual object or group of objects. Can't be disabled. Allocated Size Displays how much memory the object or group of objects allocated, in bytes. Resident Size Displays how much memory the object or group of objects is resident, in bytes. % Impact Displays how much memory the object or group of objects uses as a percentage of the Allocated Memory In Table value. All measurement bars, including the Allocated Memory In Table bar, adjust dynamically based on the selected object in the table. Native Size Displays how much of the Allocated Size value is made up of native memory. Managed Size Displays how much of the Allocated Size value is made up of managed memory. Graphics Size Displays how much of the Allocated Size value is made up of graphics memory.
Description 個々のオブジェクトまたはオブジェクトのグループの名前を表示します。無効にすることはできません。 Allocated Size オブジェクトまたはオブジェクトのグループに割り当てられたメモリの量をバイト単位で表示します。 Resident Size オブジェクトまたはオブジェクトのグループが常駐するメモリの量をバイト単位で表示します。 % Impact オブジェクトまたはオブジェクトのグループが使用するメモリの量を、[テーブル内の割り当てられたメモリ]値のパーセンテージとして表示します。「テーブル内の割り当てられたメモリ」バーを含むすべての測定バーは、テーブル内で選択されたオブジェクトに基づいて動的に調整されます。 Native Size [割り当てサイズ]値のうちネイティブ メモリが占める割合を表示します。 Managed Size 割り当てサイズの値のうち、管理対象メモリがどのくらいの量を占めているかを表示します。 Graphics Size [割り当てサイズ]値のうち、グラフィックス メモリがどのくらいの量を占めているかを表示します。
Texture2Dについて
プラットフォームごとに、サイズが異なるので、一旦PCで計測。
標準設定
MaxSize:2048 ResizeAlgorithm:mitchell Format:Automatic Compression:NormalQuality UseCrunchCompression:off
公式:https://docs.unity3d.com/ja/2022.3/Manual/class-TextureImporter.html
2.4Mの画像サイズで(2652px:1658px)の場合、メモリ消費は、2.5Mでした。
UseCrunchCompressionについて
公式
使用可能な場合は、クランチ圧縮を使用します。クランチは DXT テクスチャや ETC テクスチャの圧縮に使用できる不可逆圧縮形式です。テクスチャは CPU で DXT か ETC に解凍され、ランタイムに GPU に読み込まれます。クランチ圧縮は、ディスク上やダウンロード時に使用するスペース量をできるだけ少なくしたいときに役立ちます。クランチテクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。
- UseCrunchCompression : offで、メモリ消費は、2.5Mに
- UseCrunchCompression : onで、50%としたとき、メモリ消費は、1.4Mに
Compressionについて
- LowQualityにしたとき、メモリ消費は、2.5Mに
- NormalQualityにしたとき、メモリ消費は、2.5Mに
- HighQualityにしたとき、メモリ消費は、5.0Mに
MaxSizeについて
縦横の上限pxがこれを超えてたら、アスペクト維持で、そのサイズになるとかかも。
- 2048のとき、メモリ消費は、2.5Mに
- 1024のとき、メモリ消費は、0.6Mになるが、画質は落ちる
- 512のとき、メモリ消費は、160.5Kになるが、画質はすごく落ちる