facebook twitter hatena line email

Unity/負荷軽減/Memory

提供: 初心者エンジニアの簡易メモ
2023年11月19日 (日) 11:10時点におけるAdmin (トーク | 投稿記録)による版 (確認)

移動: 案内検索

メモリ対策

  1. プロジェクトを、一旦閉じて開く
  2. Unityメインメニュー/Windows/Analysis/Profiler/Memory/TotalCommitedMemoryを確認

閉じて、開かないと、メモリが蓄積するので、一度、プロジェクトは閉じる。

MemoryProfilerPackageインストール

  1. 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になるが、画質はすごく落ちる