DEV Community

Cover image for How Does PerfDog EVO v10.0 Conduct Deep Analysis?
wetest
wetest

Posted on

How Does PerfDog EVO v10.0 Conduct Deep Analysis?

PerfDog EVO v10.0, a powerful performance analysis tool developed by the WeTest Global team, aims to assist game and app developers in achieving stable and controllable performance. By enabling timely detection, quick issue localization, and efficient optimization, PerfDog EVO v10.0’s deep analysis feature supports various scenarios such as engine analysis and Systrace. From CPU scheduling and usage to thread execution status, call stacks, and even rendering screenshots.

PerfDog EVO v10.0 accurately captures and provides comprehensive insights, making analysis more thorough. Combined with the data management platform, PerfDog EVO v10.0 allows for rapid version comparison when performance issues arise in daily builds. Additionally, it facilitates collaborative analysis through its web-based interface, enabling multiple team members to pinpoint and optimize issues at the function or module level, ensuring stable and controllable performance for projects.

Core Functionality

PerfDog EVO v10.0 enables precise identification of performance bottlenecks at the code level, efficient computation of stat/profile data, and clear visibility of low frame rates. It provides multiple language interfaces for easy integration and further development of automated performance analysis pipelines. Its efficient data management platform allows for convenient comparative analysis and faster issue localization. PerfDog EVO v10.0 supports both Unreal Engine and Unity engine and is compatible with Android and iOS systems.

Key Stat/Profile Data Analysis

Real-time monitoring of stat/profile data facilitates the timely detection of low frame rates or abnormal stat/profile values. Events can be added and searched in the “Add Event” section to focus on specific events of interest in real time. Analyzing the Max FrameTime allows for direct investigation of the frame with the highest frame time.

Furthermore, users can jump to the frame with the highest CollectGarbageInternal time or any other added event for further analysis. PerfDog EVO v10.0 allows users to save data locally for future reference.

Image description
Stat/Profile data statistics, call stacks, and invoked call stacks provide detailed analysis of the frequency, total time, average time, as well as the maximum and minimum time of stat/profile data within a specific timeframe or single frame. It supports searching and sorting for quick identification of hotspots.

Convenient Data Analysis

PerfDog EVO v10.0 quickly calculates statistical values, reducing the need for offline calculations and focusing efforts on problem analysis. Users can swiftly calculate the differences between selected stat/profile values and the average value within a chosen frame.

Image description

CPU Scheduling

Users can quickly assess the workload distribution and determine if the CPU scheduling is reasonable for each core. For instance, in Unreal Engine games, it is essential to verify whether the GameThread, RenderThread, and RHIThread are running on smaller cores, while important threads are occupying larger cores, resulting in low frame rates or stuttering. Similarly, identifying non-essential threads running on major cores can help identify excessive power consumption and heat generation.

Thread analysis involves examining the primary thread’s execution status, synchronization, and latency. By analyzing the synchronization between core threads and monitoring frequent switches between Running, Runnable, or Sleep states, it is possible to identify abnormalities and ensure proper thread behavior.

Thread Status and Stat/Profile Data

In-depth analysis of call stacks and execution times allows for quick identification of high-cost or abnormal stat/profile data.

Image description

Examining the status of each thread and aligning it with the corresponding executed stat/profile data facilitates understanding the execution relationships between multiple threads and ensures their behavior is appropriate. For example, analyzing whether core threads experience stuttering due to waiting for other threads. Combined with stat/profile analysis, it becomes possible to determine if frame splitting or parallel execution is feasible.

Rendering Screenshots

PerfDog EVO v10.0 offers low-cost timed screenshots for efficient bottleneck identification. Screenshots are automatically matched to the current analysis frame, allowing for easier examination of the operations and rendering occurring at that moment.

Data Management

PerfDog EVO v10.0 ensures persistent storage of data, enabling performance comparison analysis and accumulation of optimization cases. It promotes efficient collaboration within teams, facilitating issue localization and optimization follow-ups.

Web-Based Analysis

The web-based interface of PerfDog EVO v10.0 provides data statistics and analysis capabilities, making team collaboration and analysis more convenient.

Mode Selection

Users can choose the appropriate mode for deep performance analysis based on the specific application being tested.

Systrace

Utilizing the event tracing mechanism of Android/iOS, Systrace is primarily suitable for non-gaming applications or games developed before Unreal Engine 4.23. Its performance impact is limited to 30% of the analysis capabilities of Android/iOS systems, such as systrace/instruments.

Conclusion

PerfDog EVO v10.0 is a powerful performance analysis tool designed to enhance the performance of games and applications. With its deep analysis capabilities, it allows developers to identify performance bottlenecks, optimize code, and improve overall stability and controllability. Its data management platform and web-based interface promote efficient teamwork and issue resolution. Whether you’re developing games or apps, PerfDog EVO v10.0 can be a valuable tool in your performance optimization toolkit.

Top comments (0)