(957 Kb)
Updated: 06/11/20 01:45 AM
File Info
Greymoor (6.0.5)
Updated:06/11/20 01:45 AM
Created:10/08/18 12:28 PM
Monthly downloads:23
Total downloads:659
ESO Profiler
Version: 1.3.3
by: votan, sirinsidiator

A big "Thank You!" to ZOS for providing us with the API for script profiling.
DependenciesThe Profiler
You have a new tab in your "Journal", now.
There is a button at the bottom to start/stop the profiler.
You get a summary with the functions called and their total time used.
You can click a row to see its call-stack. The shown call-stack is the slowest run to give you a hint what to look for.
For more details there is an "Export" button in the top-right corner. The UI will reload afterwards to save the data to disk.

The profiler auto-starts on reloadui to see what's going on during load. Because settings are not available at that time, this can not be made optional. Load the addon if you want to profile, only.
There is a button to profile the UI during re-load. It enables auto-start profiling and reloads UI. 2 seconds after loading you auto return to the profiler UI.

ESOProfiler Viewer
The addon also includes an external application which allows you to view the exported data with catapult-tracing (used by chrome dev tools for profiling).
In order to use it you need to download node-webkit and unzip all files into the viewer folder in the addon. Once done the folder should look like this:
Warning: Spoiler

The viewer is started via nw.exe and will automatically load the ESOProfiler.lua from your saved variables folder.
With the save button you can store a trace in catapult-tracing's own json format (you could also just copy ESOProfiler.lua for later use since it is smaller than the resulting json).
The load button allows you to select either a lua or json file which will then be imported for viewing.

The "?" button in the top right shows the navigation help. Most important to know is that alt-mousewheel zooms, click selects an event and drag allows to pan the view.

If you capture traces over multiple minutes, the resulting file will become very large and opening it will consume multiple gigabytes of ram. In case the viewer crashes while loading the file you can try to increase the allowed heap size. Just change the value "--max-old-space-size=4096" in package.json from 4096 (MB) to a higher one, but be warned that it can consume all your memory and slow down or crash your system!
version 1.3.3:
- Fixed tooltip error: ZOS did replace ZO_ItemTooltip_SetStolen with ZO_ItemTooltip_UpdateVisualStyle.

version 1.3.2:
- API bump for "Harrowstrom"
- Toggle profiler key-bind working outside profiler screen, too. As requested by @Solinur.

version 1.3.1:
- Update to API 100028 "Scalebreaker".

version 1.3.0:
- Update to API 100027 "Elsweyr".
- New record data types.
- New option: Profile UI Load.
- New script profiler window.

version 1.2.0:
- Added "Find Sub Calls".
- Update to API 100026 "Wrathstone"

made some major improvements to the viewer

* improved catapult-tracing fixes for use with node-webkit
* use JSONStream to import and export json data (to avoid crashes when handling lots of data)
* increased heap memory size (to fix crashes when loading large files)
* included conversion of Lua data in the importer dialog steps
* added dialog when saving json files
* removed bin/ folder (everything is now directly in viewer/)
* added app icon
Optional Files (0)

Archived Files (6)
File Name
03/21/20 12:15 PM
07/30/19 11:58 AM
05/10/19 11:09 AM
02/23/19 10:15 AM
10/09/18 09:59 AM
10/08/18 12:28 PM

Post A Reply Comment Options
Unread 10/07/19, 11:32 AM  

Forum posts: 4
File comments: 4
Uploads: 0
This is awesome! I feel like this tool should be included in the 'Getting Started` tutorials out there. I think addons would be so much better if addon creators out there were more performance conscious (Some certainly are). Using this to profile my addon
Report comment to moderator  
Reply With Quote
Unread 10/08/18, 08:58 PM  
Architecture's Avatar
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 79
Uploads: 8
Thanks! This is promising
Report comment to moderator  
Reply With Quote
Post A Reply

Category Jump: