This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Basics
Rendering
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Version Control
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API Reference
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Performance Profiling

While working on a project, you add code and models, and at some point your application starts lagging, you notice more and more glitches and spikes. At this stage it makes sense to identify what is the reason and apply a suitable recommendation to improve the performance.

UNIGINE provides the profiling tools to evaluate the framerate, find out if the problem is CPU-bound (code is unoptimized and takes too much time) or GPU-bound (image rendering is too heavy), and identify which steps take too much time.

  • Performance Profiler provides the overall performance data straight in the editor/application instance in a timeline.
  • Microprofile displays more detailed data in a browser window for up to 1000 frames, for each thread, with a possibility to save this data.

Using these tools in the Editor may give you an overall understanding of the performance issues, and enabling the tools in runtime provides a more accurate estimation.

It is recommended to profile your project throughout the development cycle to detect and fix issues as early as possible.

Profiling Workflow#

  1. Enable the tool in runtime.

    Enabling profilers in the editor is also possible and may be helpful for the content-related assessment. However, running the profiling tool in runtime provides a more reliable assessment.

  2. Define the target.

    The most common optimization marker is that each frame should take no more than 16.66 ms, which means that your application aims to run at 60 frames per second (fps). Compare it with the current values.

  3. Detect the problem side: CPU or GPU.

    Performance Profiler may give you an overall insight on the project performance and show which side, CPU or GPU, is more loaded with calculations and requires attention.

    Microprofile shows all kinds of detail on CPU and GPU.

  4. Follow the recommendations.

    Our documentation has a guidance on optimized usage of all objects.

    • If the issue is GPU-bound, content optimizations are required.
    • If the issue is CPU-bound, add markers to code to make the details visible in Microprofile as well, and detect bottlenecks in your code.

Check out the Microprofile overview and use what's applicable for your project:

The information on this page is valid for UNIGINE 2.20 SDK.

Last update: 2025-02-22
Build: ()