【Unity】実機上(ゲーム内)でメモリ使用量を表示してみる 〜iOS編〜

プロファイラーなどを使わずに手軽にメモリ使用量を画面内に表示したい!

ということでやり方を調べて見ました。

スポンサーリンク

UnityAPIを用いての簡単表示方法

これだけです!(単位はByteです)

だが!しかし!!簡単な方法にはやはりデメリットが有りました・・・・

  • Profiler.userHeapSizeはProfilerがOffの場合は値が0になる
  • iOS/AndroidのSDK等が確保するネイティブのものが計上されない

ということで、こちらはあくまでも目安値でデバッグ用途のようです。

では、正式な値を取得するにはどうすればいいのか調べたところ、

それぞれのプラットフォームごとにネイティブソースを書かなければいけないようです。

iOSでの表示方法

以下のネイティブソースでOK(単位はByteです)

こちらのmmファイルをPluginsフォルダ配下に置いて、Unity側から呼びましょう。
uGUIのTextに表示する場合以下のような感じになります。

毎フレーム取得する必要があるのかは微妙ですが、とりあえず表示テストということで。

念のためプロファイラーで確かめてみる

では、こちらで取得できる値が正しいか確かめたいと思います。

iOSでのProfilerツールといえばやはり無敵のXcodeのInstruments!

こちらで確かめてみたいと思います(※XcodeのVer.7.3)

instruments

XcodeのInstrumentsを起動

activitymonitor

ActivityMonitorを選択し起動

iphone

左上の認識端末をMacにつないでいる端末を選択

app

Installed Appsからアプリを選択

rec

録画ボタンを選択し、アプリを起動する

memory

下の一覧からProcessNameがアプリ名のものを探し、

その列のRealMemが使用しているメモリ値

こちらで確認した値とほぼ一緒でしたので

上記ソースは問題ないかと思います。

次回はAndroidについて解説したいと思います。

GitHub

ネイティブプラグイン含めてGitHubにアップいたしました。
https://github.com/VENIEGAMES/MemoryChecker-Unity

スポンサーリンク

フォローする