0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法(メモリ編)

Last updated at Posted at 2020-07-30

みなさん、こんにちは。こちらはUWA Technologies(略称UWA)です。

今日は「あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法」の最後のパート「メモリ」についてご説明いたします。

前回の文章をまだ読まれていない皆様は、是非移動してご覧ください。
「あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法(レンダリング編)」
「あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法(UI+ロード編)」
##メモリ
メモリパートに最も重要なのはメモリの割り当てメモリリークです。
ほとんどのプロジェクトでは、アセットメモリMonoメモリという2つの大きなメモリ割り当てがあります。 ここでは、最初にアセットメモリについて説明します。

###アセットメモリ
UWAレポートでは、テスト中にテクスチャメモリの割り当てを記録できます。 大事なのは、Monoメモリとテクスチャフォーマットです
1.png
また、メモリの詳細を知りたい場合は、クリックして詳細を表示できます。
2.png

###実例
これはゲーム「Kiwame」からのデータです。テクスチャの詳細情報を見ることができます。 この中に、「アセット名」、「メモリ割り当て」、「解像度」、「フォーマット」などが含まれます。NewUI1_rgbが16 MBで非常に大きいことがわかります。 開発チームはそれを チェックして、最適化する必要があるかどうかを確認できます。
3.png
また、アセット管理にも注意する必要があります。表から1つ以上のアセットを選択、それらの使用情報がチャートに表示されます。アセットがいつロードされ、いつアンロードされるかを確認でき、メモリリークを分析することには非常に有用であります。


##メッシュ
次にメッシュの詳細を見に行きます。
4.png
5.png
アニメーションクリップ、オーディオクリップ、シェーダー、フォント、RT、パーティクルシステムなど、すべての詳細情報を直接かつ迅速に見ることができます。

###結果
6.png
これは 、テクスチャ、およびオーディオの最適化の結果です。


##Monoメモリ
7.png
二番目に大きいメモリはMonoメモリです。

8.png このように、**全体的なMonoメモリ割り当てに注目すべき、メモリの合理性を確認する必要があります**。 9.png **UWAレポートは、関数のコールスタックと詳細なメモリ割り当てを示します。それで、重要な関数名をすばやく確認できし、コードで検索して最適化することができます。**

###結果
10.png
こちらは結果です。25日をかかって、Monoメモリは150MBから50MBに最適化されました。


##メモリリーク
11.png
メモリ部分に、非常に難しい難問があります。それはメモリリークです。以前には、メモリリークを分析して解決するには、2〜3か月は常に必要でした。
UWAレポートでは、常駐Monoメモリを表示できます。グラフにMonoメモリがこのように増える一方で、下がらない場合には、つまり、メモリリークが発生したということです。
じゃあどうすれば修正できますか? チャートの2つのサンプルを比較して、Monoメモリの増分を見つけます。
12.png
このプロジェクトでは、メモリのほとんどの増加が、InstantateGamObjectという関数のInstantiateによるものであることがわかります
これらは、garbage collectedできない変異体です。 そして、開発チームは関数を直接チェックして、どのコンテナーがそれらを参照しているかを確認できます。その後、コードをすばやく最適化できます。

###結果
13.png
これが結果です。 3日後、このプロジェクトでは、メモリリークの問題がほぼなくなりました
14.png
これは別の例です。 ただ1日で、メモリリークの問題が改善しました。

現在、中国でUWA GOTを使っているゲームプロジェクトは、メモリリークの問題は約3日で大幅に改善できます。
15.png
過去のメモリリークの割合は約50%でしたが、昨年、UWA GOTでMonoメモリ分析を開始して以来、割合は25%に低下しています。

####今回、UWA GOTが日本のゲーム開発者たちに役立つことを願っています。


UWAおよびUWA GOTについてもっと了解したい場合には、UWA公式サイトに移動してください。
UWA GOTを使っていたnowsprintingさんも自身のブログでUWA GOTについて詳しく説明してしましたが、興味があれば「やらなイカ?」に移動してご覧ください。


UWA Technologyは、モバイル/VRなど様々なゲーム開発者向け、パフォーマンス分析最適化ソリューション及びコンサルティングサービスを提供している会社でございます。

UWA公式サイト:https://jp.uwa4d.com
UWA公式ブログ:https://blog.jp.uwa4d.com

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?