katsumasa / UnityMemoryProfilerSupportKun

MemoryProfilerのスナップショットを実機側からコントロールするツール

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UnityMemoryProfilerSupportKun

GitHub package.json version

概要

MemoryProfilerはメモリーリーク等、メモリー関連の調査に必要不可欠なツールですが、GUIから手動で行う場合、完全に同じタイミングでCaptureを実行することは出来ません。 UnityMemoryProfilerSupportKunはスクリプトからのCaptureを容易に運用する為のRuntime APIとEditor拡張をセットにしたものです。

出来ること

  • ScriptからMemoryProfilerのSnapshotを実行し、Application.temporaryCachePathへ保存します。
  • 端末上に保存されたSnapshotをUnityEditorから取得出来ます。

動作環境

動作確認済みUnity

  • Unity2019.4.19f1

動作確認済みプラットフォーム

  • Android

インストール

git を使用する場合

git clone https://github.com/katsumasa/UnityMemoryProfilerSupportKun.git

Unity Package Managerを使用する場合

  1. Window-> PackageManager
  2. Addimageをクリックします
  3. パッケージを加えるためのオプションが表示されます。
    image
  4. ドロップダウンから Add package from git URL を選択します。テキストフィールドと Add ボタンが表示されます
  5. テキストフィールドにhttps://github.com/katsumasa/UnityMemoryProfilerSupportKun.gitを入力します

使い方

  • Runtime/Prefabs/UnityMemoryProfilerSupportKun.prefabをSceneに配置して下さい。このPrefabは常に存在している必要があることに注意して下さい。
  • アプリケーションをビルドする際、Development Build 及び AutoConnect Profiler の両方にチェックを入れた状態でビルドを行って下さい。
  • MemoryProfilerのCaptureを行う箇所で下記のAPIを実行して下さい。
UnityMemoryProfilerSupportKunClient.instance.TakeCapture("スナップショットのファイル名");

Capture処理が完了すると、下記の変数がtrueになります。

UnityMemoryProfilerSupportKunClient.instance.isDone

例えば、シーン切り替え直前・直後に上記メソッドを実行し差分を比較することでメモリーリークの解決の糸口を見つけることが出来る可能性があります。

UnityMemoryProfilerSupportKunWindow

Window->UnityMemoryProfilerSupportKunWindowでWindowが開きます。

image

Connect to

接続先のPlayerを選択します。

Get Snap List

端末に保存されたMemoryProfilerのsnapの一覧を取得します。

DownLoad

指定されたsnapを任意のフォルダーにダウンロードします。

Delete

指定されたsnapを端末から削除します。

サンプルプログラム

下記の2種類のサンプルを用意しています。 ※PackageManagerからインストールした場合、直接Sceneを開く事が出来ないので、コピーするなどして御使用下さい。

Simple

実機側のボタンを押すことでSnapShotを取るシンプルなサンプル。シーンsimple.untyのみビルドの対象として下さい。

SceneMain

Scene切り替えのタイミングでSnapShotを取るサンプル。下記の3シーンをビルドに含めて下さい。

  • SceneMain.unity
  • SceneSub0001.unity
  • SceneSub0002.unity

その他

不具合・ご要望はissueからご連絡下さい。

About

MemoryProfilerのスナップショットを実機側からコントロールするツール

License:MIT License


Languages

Language:C# 100.0%