Arcane Profiler: Find Out What's Slowing Your Login
Version: 3.0.0 | Author: DatWarmGuy | Interface: 12.0.1 (Midnight)
What Is Arcane Profiler?
Ever wonder why your game takes so long to load? Arcane Profiler tracks how long every addon takes to load each time you log in or /reload, down to the millisecond, and shows you exactly where the time went. No setup required: install it, log in, and type /ap or click the minimap button.
Built for WoW Midnight (12.0.1) using only the current C_AddOns API. It doesn't touch combat APIs, secure frames, or anything restricted, so it won't conflict with anything else you run.
Features
- Gantt Timeline: every addon plotted as a colour-coded bar across the full load window, so you can see what loaded early, late, or in parallel. Hover any bar for details.
- Duration Chart: a horizontal bar chart sorted longest-to-shortest, so your slowest offenders are always at the top.
- Memory Tab: a dedicated breakdown of every addon's memory footprint, sorted largest-to-smallest with a heat-mapped chart and totals.
- Sortable Table: full row-by-row breakdown, including start time, end time, duration, usage %, memory, and a SLOW / MEDIUM / FAST status badge.
- Compare Mode: put two sessions side by side on a shared millisecond scale, with per-addon delta badges showing exactly what got faster or slower.
- Search & Filter: a search bar that instantly filters every tab by addon name.
- Minimap Button: click to open the profiler, right-click to jump straight to Compare. Glows green if your last load was faster than the one before it, red if it was slower.
- Load Trend Tracking: every session is automatically compared to the previous one, with the trend shown in chat, the window footer, and the minimap button.
- 20-session history: your last 20 logins are saved automatically for long-term comparison.
- Character tracking: each session records which character and realm triggered it, so you can spot per-character differences.
- First-time walkthrough: a short guided welcome screen on your very first login, ending with a button that opens the profiler on your actual results.
Installation
- Download the zip below and extract it.
- Copy the
ArcaneProfilerfolder into:World of Warcraft/_retail_/Interface/AddOns/ArcaneProfiler/ - Launch WoW, or
/reloadif it's already running. - Log into any character. On login, the profiler automatically captures that session's addon load times.
Run
/reloadany time to capture a fresh session without fully relaunching the game.
Slash Commands
| Command | What it does |
|---|---|
/ap |
Open or close the profiler window |
/ap top |
Print the top 5 slowest addons in chat |
/ap mem |
Print the top 5 memory-heaviest addons in chat |
/ap export |
Open the JSON export window |
/ap history |
List your last 20 saved sessions with trend indicators |
/ap reset |
Clear all saved session data |
/ap help |
Show the command reference in chat |
Reading the Window
Once open, the profiler has five tabs:
- Timeline: the Gantt-style view of when each addon started and finished loading
- Chart: the sorted longest-to-shortest bar chart
- Table: the full sortable breakdown of every addon's stats
- Compare: pick any two saved sessions from the dropdown and see them side by side
- Memory: the same idea as the Chart tab, but for memory footprint instead of load time
Use the search bar in the top right of the window to filter any of these down to specific addons by name.
Exporting to the HTML Viewer
- In-game, type
/ap, then click Export in the top-right corner of the window - Click Select All, then
Ctrl+Cto copy - Open
ArcaneProfilerViewer.html(included in the download) in your browser - Click Import JSON and paste with
Ctrl+V
You can import multiple sessions into the viewer at once. They show up as tabs above the charts, so you can compare load times across logins or after disabling addons entirely outside the game.
How the Timing Actually Works
WoW doesn't expose precise per-addon start/stop hooks in the public API, so Arcane Profiler uses two techniques:
- Observed addons: anything that fires
ADDON_LOADEDafter the profiler itself has loaded gets a precise start and end timestamp viaGetTimePreciseSec()(millisecond accuracy). In practice this covers 70โ90% of your addons. - Unobserved addons: anything that loaded before the profiler in the queue can't be timed directly. These get a synthetic estimated time based on memory footprint as a rough proxy, placed at the start of the timeline, and are marked
observed: falsein the export JSON.
FAQ
Does this slow down my load time? No. It only reads timestamps and memory values WoW already tracks internally. The overhead is negligible.
Why do some addons show 0ms? Anything that loaded before Arcane Profiler itself initialized gets a start time of 0. This typically only affects the first 1โ3 addons in the queue.
Will this keep working after future patches?
If Blizzard bumps the interface version, update the ## Interface: line in ArcaneProfiler.toc to match your client's new build number. Everything else relies on stable APIs.
SavedVariables
Your last 20 sessions persist automatically in WTF/Account/<name>/SavedVariables/ArcaneProfilerDB.lua, so you can compare before/after disabling addons across logins.
โฌ Download Arcane Profiler, or browse everything on the Downloads page.