Concurrent profiling tool for Erlang
Erlang JavaScript CSS HTML PHP Gnuplot Makefile
Latest commit fa796a7 Dec 31, 2016 Huiqing Li removed OTP restrictions.
Failed to load latest commit information.
doc added information about source code viewing. Feb 14, 2014
include fixed type. Jun 8, 2014
priv resolved conflicts. Jun 9, 2014
.gitignore support installation on the system Sep 24, 2014
Makefile support installation on the system Sep 24, 2014

Percept2 -- A Concurrency Erlang Profiling Tool


Percept2 is an enhanced version of the Percept (see profiling tool from the Erlang/OTP distribution. Percept2 extends Percept in both functionality and scalability. Among the new functionalities added are:

  • scheduler activity: the number of active schedulers at any time during the profiling;

  • process migration information: the migration history of a process between run queues;

  • statistics data about message passing between processes: the number of messages, and the average message size, sent/received by a process;

  • accumulated runtime per-process: the accumulated time when a process is in a running state;

  • process tree: the hierarchy structure indicating the parent-child relationships between processes;

  • dynamic calling-context-aware function call graph;

  • active functions: the functions that are active during a specific time interval

  • inter-node message passing: the sending of messages from one node to another, and

  • the view of soure code.

How to build Percept2

Build and install the software in the usual way:

   $ ./configure 
   $ make 
   $ (sudo) make install

By default Percept2 is installed under the directory /usr/local; to install Percept2 in a different directory, you need to explicitly specify the directory using the '--prefix=...' flag of 'configure'.

NOTE: percept2 uses the `graphviz' tool to generate the graph representation of process tree and dynamic function callgraph. While we are trying to remove this dependence, please make sure graphviz is installed on your machine for now.


Percept2 online documentation is available from


H. Li and S. Thompson. Multicore Profiling for Erlang Programs Using Percept2. In Proceedings of the Twelfth ACM SIGPLAN Workshop on Erlang, pages 33-42, September 2013. ACM Press.

P. Rodgers, R. Baker, S. Thompson and H. Li. Multi-level Visualization of Concurrent and Distributed Computation in Erlang. In Visual Languages and Computing (VLC) in The 19th International Conference o n Distributed Multimedia Systems (DMS 2013), August 2013.