Recent Topics

Ads

[Addon] PerfMon

Share, discuss, and get help with addons for Return of Reckoning.
For most available addons, visit Idrinth's Addons site.
Forum rules
Before posting in this forum, please read the Terms of Use and visit Idrinth's Addons site for most available addons.
User avatar
Caffeine
Posts: 685

[Addon] PerfMon

Post#1 » Fri Nov 21, 2025 9:01 pm

PerfMon

Image

Download: PerfMon_42.zip

Description

PerfMon is a tiny watchdog addon that monitors "elapsed" time and mirrors it into a separate timestamped log. "Elapsed" time is the gap in milliseconds between two successive OnUpdate callbacks in the Lua UI layer. Big gaps mean the client spent more time between frames which is bad.

/perfmon start starts recording "elapsed" samples, enables DebugWindow filters and starts core module logging.
/perfmon stop stops recording elapsed samples, disables DebugWindow filters and turns off core module logging.
/perfmon breakpoint adds a marker to the current recording.

Elapsed samples under 0.2 sec are written to file once per second instead of every tick to keep log file slim while keeping all spikes intact. Log files land in /Interface/logs/ named with a timestamp of when the recording started.

While recording, PerfMon adds session-relative time markers to samples, events, function calls, errors and breakpoints. The parser uses these markers to line both logs up with frame-level sub-second precision. Old logs without markers still work but are limited to one-second timestamps.

Addon folder includes PerfMon.html - a web based log parser that opens in any browser. It expects two log files:
- a perfmon log like "perfmon_2025_11_03_175617_elapsed.log"
- the matching "uilog.log" full of events, functions and errors

Once both files are loaded there are three main ways to dig through the data:

Timeline and event overlays
Set the spike threshold to highlight slow samples. Events, function calls and errors can be searched and filtered. Select one to show every occurrence on the timeline. Breakpoints also show up as labelled markers.

Spike analysis
Click a sample above the threshold to see what fired around that spike. The parser also ranks suspicious entries by how often they appear around spikes compared to the rest of the recording.

Burst analysis
The optional burst histogram shows how much UI log activity happened across the visible timeline. Select a bar to inspect everything inside that time bucket. Bucket size adjusts automatically when zooming.

Scope and limitations

PerfMon is a very crude sampler, not a real profiler and definitely not a benchmarking suite. It lives on the Lua side and piggybacks on publicly available data. It can't see juicy stuff like GPU time, draw calls, IO waits, etc. Recorded data is mostly useful for "best-effort" fishing expeditions looking for addons that may cause stuttering. I made it to optimize my UI pack and now I'm sharing in case someone else finds it useful.

PerfMon is a very IO intensive addon meaning it writes a lot to disc. For people on a slow HDD this might negatively affect performance you are trying to measure. This issue can be solved by moving logs folder to a RAM disc.

A full guide on how to do that is available here: viewtopic.php?p=586739#p586739

Dependencies

PerfMon requires EA_UiDebugTools by Github (an updated core module) which is included in the download archive.
Last edited by Caffeine on Sat Aug 22, 2026 5:50 pm, edited 2 times in total.
VinyUI | FPS Guide | Scenario Alert | Image Caffeine Image Decaf Image Vermont Image Nevada

User avatar
Caffeine
Posts: 685

Re: [Addon] PerfMon

Post#2 » Sat Aug 22, 2026 5:44 pm

Updated to 4.2

- Reworked the log analyzer UI.
- Added sub-second timing for events and function calls.
- Added a way to dump /d output straight to a log file.
- Fixed parsing for different timestamp positions.
VinyUI | FPS Guide | Scenario Alert | Image Caffeine Image Decaf Image Vermont Image Nevada

Who is online

Users browsing this forum: Amine, notrandomatall and 7 guests