如果我可以將剖析器統計信息(http://docs.unity3d.com/Manual/ProfilerWindow.html)和/或Unity Rendering Statistics(顯示實時統計信息的疊加窗口) - http://docs.unity3d.com/Manual/RenderingStatistics.html - 保存爲像CSV或Excel甚至txt文件那樣的文件,我需要知道我可以稍後研究它們並對它們進行一些統計分析。如何在文件(文本或CSV ...)中保存Unity統計信息或Unity Profiler統計信息(CPU,渲染,內存...中的統計信息)?
2
A
回答
2
是的,你可以。
保存探查數據:
// write FPS to "profilerLog.txt"
Profiler.logFile = Application.persistentDataPath + "/profilerLog.txt";
// write Profiler Data to "profilerLog.txt.data"
Profiler.enableBinaryLog = true;
Profiler.enabled = true;
然後你就可以顯示在編輯這個數據:
Profiler.AddFramesFromFile(Application.dataPath + "/profilerLog.txt");
節能數據:
你可以使用任何你想要的序列化方法/喜歡。只需使用UnityEditor.UnityStats
的數據。請記住,它只能從編輯器中獲得。
這個類看起來是這樣的,自動完成應該有所幫助:
public sealed class UnityStats {
public static extern int drawCalls
public static extern int batchedDrawCalls
public static extern int batches
public static extern int triangles
public static extern int vertices
public static extern int shadowCasters
public static extern int renderTextureChanges
public static extern float frameTime
public static extern float renderTime
public static extern int renderTextureCount
public static extern int renderTextureBytes
public static extern int usedTextureMemorySize
public static extern int usedTextureCount
public static extern string screenRes
public static extern int screenBytes
public static extern int vboTotal
public static extern int vboTotalBytes
public static extern int vboUploads
public static extern int vboUploadBytes
public static extern int ibUploads
public static extern int ibUploadBytes
public static extern int visibleSkinnedMeshes
public static extern int visibleAnimations
public static extern string GetNetworkStats(int i);
}
2
帶着一臉到對反編譯的統一代碼(你可以在網上找到)的ProfilerWindow類,你可以很容易地編寫導出數據的腳本你需要。
腳本可能看起來像這樣
using UnityEditor;
using UnityEditorInternal;
var firstFrameIndex = ProfilerDriver.firstFrameIndex;
var lastFrameIndex = ProfilerDriver.lastFrameIndex;
var profilerSortColumn = ProfilerColumn.TotalTime;
var viewType = ProfilerViewType.Hierarchy;
var profilerData = new ProfilerData();
for (int frameIndex = firstFrameIndex; frameIndex <= lastFrameIndex; ++frameIndex)
{
var property = new ProfilerProperty();
property.SetRoot(frameIndex, profilerSortColumn, viewType);
property.onlyShowGPUSamples = false;
bool enterChildren = true;
while (property.Next(enterChildren))
{
// get all the desired ProfilerColumn
var name = property.GetColumn(ProfilerColumn.FunctionName);
var totalTime = property.GetColumn(ProfilerColumn.TotalTime);
// store values somewhere
}
property.Cleanup();
}
如果你願意,你可以使用this script,使您可以將數據導出爲一個JSON文件,還提供了當你剖析一些有用的統計數據。
相關問題
- 1. Ehcache統計信息
- 2. Hadoop文件系統統計信息(FileSystem.Statistics)
- 3. Solr統計信息
- 4. 使用Java分析系統內存/ CPU統計信息
- 5. 生成mysql統計信息
- 6. 收集mysql統計信息
- 7. Java版本統計信息
- 8. 每組Solr統計信息
- 9. 用戶的統計信息
- 10. numpy的統計信息
- 11. Google datastore統計信息
- 12. jQuery CDN緩存統計信息
- 13. 在Ruby中統計一段時間內的統計信息
- 14. 從libvirt獲取CPU統計信息
- 15. Python:代碼統計信息
- 16. 在wp統計信息中刪除頭版訪問者統計信息
- 17. 事務日誌(MSSQL服務器)的內存/ CPU統計信息
- 18. Mesos從站統計信息
- 19. 僞造Oracle統計信息?
- 20. Memcache統計信息cachedump
- 21. Postgres統計信息 - pg_stat_get_db_xact_commit
- 22. Android Market統計信息
- 23. Jruby統計信息庫
- 24. iOS5,iOS4,...統計信息?
- 25. MySql表和統計信息
- 26. 月份統計信息
- 27. UIBarButtonSystemItem信息和統計
- 28. Git統計信息API JSON
- 29. Postgres統計信息收集
- 30. 直接從CSV文件計算統計信息
也許這個文章可以幫助你:https://www.packtpub.com/mapt/book/game-development/9781785884580/1/ch01lvl1sec11/saving-and-loading-profiler-data – wil