Client Profiling: Difference between revisions

From Eco - English Wiki
[checked revision][checked revision]
Created page for profiling.
 
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Server profiling==
== Development Build ==
Server profiling is available in release build both for memory and CPU. For CPU profiling it takes a 1 minute snapshot, for memory it makes a dump file.
In opposite to [[Server Profiling]], the profiling options on this page are only available when playing on a development build.
<nowiki>**</nowiki>During creation of the snapshot it is expected to have increased CPU usage, which may cause in game lags.**
===Requirements===
1. For dotnet trace CPU snapshots: https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace#install


2. For memory dumps: https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump#install
You can check if you're running a development build by looking up if this message is present in the right bottom corner:[[File:Development build.png|none|thumb]]
 
==Snapshot==
3. For JetBrains dotTrace snapshots: https://www.jetbrains.com/help/profiler/Performance_Profiling__Profiling_Using_the_Command_Line.html#install-and-use-the-command-line-tool-as-a-net-core-tool. For snapshot analysis it requires dotTrace license (trial available), but the snapshot itself can be done without license.
You can use the `F6` key to make a snapshot. Check the chat log for output file location details, navigate there with your explorer and attach the file to your report.
===Server GUI===
== Transforms Profiling ==
Snapshots can be made via the server GUI menu:
# Open Diagnostic Pages UI (with F2).
[[File:Server profiling.png|none|thumb]]
# Go to Transforms page (navigate pages with F3/F4). Page itself significantly impacts performance so keep it closed when you don't need transform updates data.
 
# When you have FPS problems open the page, wait for few seconds and make a screenshot. Attach it to report.
===Chat Commands===
# Then run /savetransformstats command in console, find in same directory as Player.log file named transform-stats.txt and also attach it to report.
May be invoked from game by a user with admin privileges. Mirrors GUI menu commands:
== Test which objects have the most performance impact ==
*''/profiler full'' - both CPU (.nettrace) and memory snapshots **(Do not use - nettrace doesn't give insightful results)**
# Use /disableobjects {trees,animals,worldobjects,rubbles} (one of the options) to disable rendering of specific group of objects. Then you can check if it fixes your FPS or not. You can also test if with that group disabled you have performance degradation issues or not.
*''/profiler dump'' - memory dump only
# Use /enableobjects all (or speicific group you previously disabled) to re-enable all objects. Though all objects which was previously disabled won't be recovered - you need to re-enter the world or reload these objects by leaving and returning to the area.
*''/profiler cpu'' - CPU (.nettrace) snapshot only **(Do not use - nettrace doesn't give insightful results)**
*''/profiler dottrace'' - dotTrace Timeline snapshot
*''/profiler results'' - opens web page where profiling results may be downloaded
===Output results===
All profiling results are stored in the Server/ProfilingResults directory. You can check the exact log path in the server log. Results are saved as .zip file and may need to be extracted first.
.dtt - can be opened JetBrains dotTrace
.dmp - Memory dump, can be opened with JetBrains dotMemory, WinDbg or VisualStudio
.nettrace - can be opened with PerfView or converted to SpeedScope format. Read more: https://github.com/dotnet/diagnostics/blob/main/documentation/dotnet-trace-instructions.md#viewing-the-trace-captured-from-dotnet-trace.
 
Results may be accessed via the Web UI as well. It requires admin user permissions (using _/profiler results_ command).
==Client Profiling==
In the development build you can use the `F6` key to make a snapshot. Check the chat log for output file location details.
You can check if you're running a development build by looking up if this message is present in the right bottom corner:
[[File:Development build.png|none|thumb]]

Latest revision as of 12:41, 15 November 2022

Development Build[edit | edit source]

In opposite to Server Profiling, the profiling options on this page are only available when playing on a development build.

You can check if you're running a development build by looking up if this message is present in the right bottom corner:

Snapshot[edit | edit source]

You can use the `F6` key to make a snapshot. Check the chat log for output file location details, navigate there with your explorer and attach the file to your report.

Transforms Profiling[edit | edit source]

  1. Open Diagnostic Pages UI (with F2).
  2. Go to Transforms page (navigate pages with F3/F4). Page itself significantly impacts performance so keep it closed when you don't need transform updates data.
  3. When you have FPS problems open the page, wait for few seconds and make a screenshot. Attach it to report.
  4. Then run /savetransformstats command in console, find in same directory as Player.log file named transform-stats.txt and also attach it to report.

Test which objects have the most performance impact[edit | edit source]

  1. Use /disableobjects {trees,animals,worldobjects,rubbles} (one of the options) to disable rendering of specific group of objects. Then you can check if it fixes your FPS or not. You can also test if with that group disabled you have performance degradation issues or not.
  2. Use /enableobjects all (or speicific group you previously disabled) to re-enable all objects. Though all objects which was previously disabled won't be recovered - you need to re-enter the world or reload these objects by leaving and returning to the area.