見出し画像

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

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

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

前回の文章をまだ読まれていない皆様は、是非移動してご覧ください。
「あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法(レンダリング編)」
「あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法(UI+ロード編)」


メモリ

メモリパートに最も重要なのはメモリの割り当てメモリリークです。
ほとんどのプロジェクトでは、アセットメモリMonoメモリという2つの大きなメモリ割り当てがあります。 ここでは、最初にアセットメモリについて説明します。


アセットメモリ

UWAレポートでは、テスト中にテクスチャメモリの割り当てを記録できます。 大事なのは、Monoメモリとテクスチャフォーマットです。

画像1

また、メモリの詳細を知りたい場合は、クリックして詳細を表示できます。

画像2

実例

これはゲーム「Kiwame」からのデータです。テクスチャの詳細情報を見ることができます。 この中に、「アセット名」、「メモリ割り当て」、「解像度」、「フォーマット」などが含まれます。NewUI1_rgbが16 MBで非常に大きいことがわかります。 開発チームはそれを チェックして、最適化する必要があるかどうかを確認できます。

画像3

また、アセット管理にも注意する必要があります。表から1つ以上のアセットを選択、それらの使用情報がチャートに表示されます。アセットがいつロードされ、いつアンロードされるかを確認でき、メモリリークを分析することには非常に有用であります。


メッシュ

次にメッシュの詳細を見に行きます。

画像4

画像5

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

結果

画像6

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


Monoメモリ

画像7

二番目に大きいメモリはMonoメモリです。

画像8

このように、全体的なMonoメモリ割り当てに注目すべき、メモリの合理性を確認する必要があります。

画像9

UWAレポートは、関数のコールスタックと詳細なメモリ割り当てを示します。それで、重要な関数名をすばやく確認できし、コードで検索して最適化することができます。

結果

画像10

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


メモリリーク

画像11

メモリ部分に、非常に難しい難問があります。それはメモリリークです。以前には、メモリリークを分析して解決するには、2〜3か月は常に必要でした。
UWAレポートでは、常駐Monoメモリを表示できます。グラフにMonoメモリがこのように増える一方で、下がらない場合には、つまり、メモリリークが発生したということです。
じゃあどうすれば修正できますか? チャートの2つのサンプルを比較して、Monoメモリの増分を見つけます。

画像12

このプロジェクトでは、メモリのほとんどの増加が、InstantateGamObjectという関数のInstantiateによるものであることがわかります。
これらは、garbage collectedできない変異体です。 そして、開発チームは関数を直接チェックして、どのコンテナーがそれらを参照しているかを確認できます。その後、コードをすばやく最適化できます。

結果

画像13

これが結果です。 3日後、このプロジェクトでは、メモリリークの問題がほぼなくなりました。

画像14

これは別の例です。 ただ1日で、メモリリークの問題が改善しました。

現在、中国でUWA GOTを使っているゲームプロジェクトは、メモリリークの問題は約3日で大幅に改善できます。

画像15

過去のメモリリークの割合は約50%でしたが、昨年、UWA GOTでMonoメモリ分析を開始して以来、割合は25%に低下しています。

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


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

UWA公式サイト:https://jp.uwa4d.com

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

UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com

この記事が気に入ったらサポートをしてみませんか?