Report Open Access

A graphical Linux-perf based tool that reports application performance information

Hardi, Nikola; Awile, Omar; Santogidis, Aram

Project Specification

Application performance is often assessed using the Performance Monitoring Unit (PMU) capabilities present in modern processors. One popular tool that can read the PMU’s performance counters is the Linux perf tool. Perf, however, requires indepth knowledge of performance counters, the supported events on the platform’s CPU and their meaning. Also, perf returns measurements in simple plain text (or binary) format and leaves the task of visualizing, analyzing and interpreting the results up to the user. The aim of this project is to develop a tool that allows the user to more easily profile an application using perf. This tool shall act as a frontend to perf, abstracting the specific details of supported PMU events on the target architectures. It will also return simple and clear graphs and summaries helping the user to interpret the results. Such a tool can significantly boost the productivity of application developers who are engaged with application performance monitoring at CERN and elsewhere. In the scope of this project we would like to focus on the visualization and analysis of the application profile over time, further differentiating this tool from other existing profilers.


The aim of this project was to implement a tool for visualizing data from the PMU (Performance Monitoring Unit). The implemented tool is built on top of the Linux perf system and pmutools. The implemented solution integrates perf tools more tightly. It provides an interactive graphical user interfaces and extends already available tools with completely new features such as data visualization, storing benchmark data and collaborative work. The tool is implemented as a web application which can be run remotely and accessed by multiple users. It is built using modern technologies such as AngularJS, Flask, Bokeh, Pandas etc. At the end of this programme the solution can be used for running benchmarks and visualizing the recorded data, as well as reviewing past benchmark runs. It provides access to the perf list, perf stat, perf record and perf script tools. Output of the perf stat tool can be streamed and analyzed in real time. In this report I describe the motivation behind this project as well as my contributions that address the requirements outlined above. Finally, some ideas for future work are proposed.

Name Size
Report Nikola Hardi.pdf
713.4 kB Download


Cite as