โ† addons 4 min read

Arcane Profiler: Find Out What's Slowing Your Login

Arcane Profiler icon

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

  1. Download the zip below and extract it.
  2. Copy the ArcaneProfiler folder into:
    World of Warcraft/_retail_/Interface/AddOns/ArcaneProfiler/
  3. Launch WoW, or /reload if it's already running.
  4. Log into any character. On login, the profiler automatically captures that session's addon load times.

Run /reload any 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

  1. In-game, type /ap, then click Export in the top-right corner of the window
  2. Click Select All, then Ctrl+C to copy
  3. Open ArcaneProfilerViewer.html (included in the download) in your browser
  4. 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_LOADED after the profiler itself has loaded gets a precise start and end timestamp via GetTimePreciseSec() (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: false in 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.