概要 UnityではないC#であればSystem.Environment.WorkingSetやProcess.GetCurrentProcess().WorkingSet64などを使ってアプリのメモリ使用量を取得できますが、Unityで作ったWindows Standaloneアプリでは何故か0を返します。調べても解決方法が見つかりませんでしたがC++でPluginを書いてみたら取得できたのでその方法を解説します。 メモリ関連の用語について まず実装の説明をする前にメモリ関連の用語について簡単に説明しておきます。 用語 意味 スワップ 物理的なメモリ上のデータをストレージ(HDDやSSD)上に退避させること ワーキングセット 物理的なメモリ上に確保されているメモリ量 プライベート ワーキングセット ワーキングセットのうちそのプロセスだけが使えるメモリ量 共有 ワーキングセット ワーキング
![Windowsアプリのメモリ使用量を取得する【Unity】 - Cooooding!!](https://cdn-ak-scissors.b.st-hatena.com/image/square/268219d08e9b6c162e5dc7f7367619eb69586a6b/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fn%2Fnyama41%2F20191104%2F20191104212541.png)