circle-loader
by
329/ 1

UWA GOTはUWAが提供しているローカルパーフォマンス最適化ツールです。Overview分析モードは開発者が直観的にソースコード内の性能ボトルネックを特定することができます。しかし、普段の性能改善の業務で、よくソースコードを部分的に診断したり、コードのCustom Variablesに対してモニタリングしたり、重要なロジックイベントに対してフィードバックしたりする必要があります。

 

このため、本ツールでCustom Code BlockとCustom Variablesの機能を提供しました。本機能は開発者が任意のソースコードブロック(C#またはLua)に対して診断や追跡することができるようになったほか、プロジェクトのキーVariablesと重要パラメータに対してモニタリングすることもできます。これにより、開発者が柔軟にソースコードのボトルネックのポジショニング、問題のフィードバックすることができ、データの過去履歴を使用して比較したり、プロジェクトのそれぞれのバージョンリリース時の安全性を確保します。

 

以下はCustom Code BlockとCustom Variablesの具体例です。

 

一、Custom Code Block

プロジェクトのコード内、開発チームがUWA API PushSampleと PopSampleを使用して任意のCode Blockに対して切り取ることができます。

 

プロジェクトが実機でのテスト完了後、すぐUWA GOT Onlineで当該Code Blockの具体的なCPUコストを下図のように確認できます。

 

テーブルの任意の関数をクリックすれば、当該関数のテストでの具体的CPUコストを確認できます。また、開発者は違うバージョンでの変化も確認できます。随時これらの重要関数の性能トレンドのモニタリングできます。

 

使い方:
UWAEngineに自定義の関数タグを追加します。UWAEngineはPushSampleとPopSampleに対し、その間のCode BlockのCPUコストを統計します。

UWAEngine.PushSample/PopSample 
public static void PushSample(string sampleName); 
public static void PopSample();

パラメータ

sampleName 自定義の関数タグ

UWAEngine.PushSample(“MyCode”); 
// My Beautiful Code 
UWAEngine.PopSample();

 

二、Custom Variables

プロジェクトのコード内、会社者がUWA APIのLogValueとAddMarkerを通じて、指定のマーカーと対応の数値を追加することによって、UWA GOT Onlineで追跡とモニタリングができます。現在,本機能は以下の4種類のVariablesのタイプをサポートしております。Int、Float、BoolとVector、詳細は下図参照。

 

使い方:
UWAEngine.LogValue

public static void LogValue(string valueName, float value); 
public static void LogValue(string valueName, int value); 
public static void LogValue(string valueName, bool value); 
public static void LogValue(string valueName, Vector3 value);

パラメータ
valueName自定義のVariablesのマーカー
value   Variablesの値

UWAEngine.LogValue(“A Bool”, true); 
UWAEngine.LogValue(“A Int”, Time.frameCount); 
UWAEngine.LogValue(“A Float”, Time.deltaTime);  
UWAEngine.LogValue(“A Float”, new Vector3(1,1,1));

 

また、指定の関数がコールされた回数をモニタリングするため、AddMarker機能も提供しています。本機能は特にC#とLua間の切り替え状況をモニタリングするにはお勧めです。

AddMarker 使用例:

Public static AddMarker(string marker);

UWA GOTはそれぞれのMarkerがフレームごとのAdd回数を統計します。本インタフェースはLuaが コールしたC# インタフェースの回数を統計します。例えば、SLuaのCode Generatorを修正し,自動的に各Wrap関数に対応のワードを追加します。下図参照:

 

テスト後、下図のようなコスト統計とフレームごとの統計情報を確認できます。