Heatfiler
This is a JS heatmap profiler slash code coverage tool. Open sourced on github. See blog post. For help on usage, read the docs. The console is your friend (errors...) ;)
By Peter van der Zee, © August 2012 - 2013, pvdz.ee
Run code
Start running your code here. There are a few ways of running your code.
- You can either paste the JS your want to run
- Or, you can enter the files to process one-by-one
You can either immediately show the output or put the stats in localStorage
.
For the files, make sure you enter each file on its own line. You can prefix it with a +
or -
to indicate whether you want to profile (+
) the file or not (-
). This page fetches them with ajax.
If you decide to send the profiling stats to local storage, you will need to open this page in another tab (in the same browser) and follow steps in the "Listen" tab.
My input will be
And I want to run it
Translated output:
Listen
Start listening to stats sent to localStorage
. There are basically two ways of doing this.
- From the "run code" tab of this page (from another tab), selecting "to localStorage"
- Integration of HeatFiler in an existing project (see below)
Both methods will output the results to localStorage
(in the same way). Press the "listen" button to start showing the heatmap.
To integrate HeatFiler first include the profiler in your project. Make all script tags in that project have a type="profile"
or type="no-profile"
. Only the profile
tags will be profiled, obviously. But other tags need to get a special type
as well as to preserve execution order. Once this is done, load the project page and start listening in this tab.
Translated output:
ε
I have been left empty. On purpose. Honestly!NodeJS
You can require HeatFiler in any existing nodejs project. Just tell it which files to profile and it will show the results here.
By default files are not profiled. When you run the whole nodejs integration thing, you will get a list of files that have been seen below.
The outputted file (configurable) must of course be accessible through XHR from this page. Other than that it works similar to the localStorage
method.
Enter the configured location of the output file, either absolute or relative to this page. If cross domain, make sure it's accessible through XHR (setup CORS). In most browsers you'll need to run this page through a webserver in this mode, regardless (can't XHR from file system).
Detected no files to profile. Either try again in a few seconds or use the file list below to select the files you want to profile. To start profiling scripts, in your current setup, the call could be something like:
require('').bootstrap('', [ ]);
All files encountered in project (so far):
Translated output (of profiled files):
Profiler heatmap
If this spinner is not spinning, the browser is very busy running your code.
Current file:
- Most called funcs
- Most called statements
- JIT info
Loading heatmap...