/perf_data_converter

Tool to convert Linux perf files to the profile.proto format used by pprof

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Github Action CI

Introduction

The perf_to_profile binary can be used to turn a perf.data file, which is generated by the linux profiler, perf, into a profile.proto file which can be visualized using the tool pprof.

For details on pprof, see https://github.com/google/pprof

THIS IS NOT AN OFFICIAL GOOGLE PRODUCT

Prerequisites to build

  • Install dependencies

    sudo apt-get -y install g++ git libelf-dev libcap-dev
    
  • At least g++-5 or clang-7

Compile and Test

To install all dependences and build the binary, run the following commands. These were tested on Ubuntu 14.04 LTS:

Compile

  • Install bazel by following the instructions here.

  • Install dependencies and build perf_to_profile using bazel

    git clone https://github.com/google/perf_data_converter.git
    cd perf_data_converter
    bazel build src:perf_to_profile
    

Place the perf_to_profile binary in a place accessible from your PATH (e.g. /usr/local/bin).

Running tests

  • There are a small number of tests that verify the basic functionality. To run these, after successful compilation, run:

    bazel test src:all
    bazel test src/quipper:all
    

Note: Executables generated using bazel build are available under the directory bazel-bin/.

Usage

  • Profile a command using perf, for example:

    perf record /bin/ls
    
  • Recent versions of pprof will automatically invoke perf_to_profile:

    pprof -web perf.data
    

Contribution

We appreciate your help!

Note that perf data converter and quipper projects do not use GitHub pull requests, and that we use the issue tracker for bug reports.