Skip to content
Tool to convert Linux perf files to the profile.proto format used by pprof
C++ Starlark Other
Branch: master
Clone or download
ZachMarcus Uprev to internal head; map sample callchain ips better. (#86)
* Prevent sample callchain ips that are under PERF_CONTEXT_USER getting mapped to
the kernel space.

PiperOrigin-RevId: 289475915

* Mark sample callchain ip that is not mapped to quipper space and assign it null
mapping.

PiperOrigin-RevId: 291192190
Latest commit e7d6443 Feb 11, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
external Update open-source to internal head. (#80) Aug 5, 2019
src
.gitignore Rolling up latest changes. (#51) Apr 7, 2018
.travis.yml Pull changes from upstream. (#82) Oct 3, 2019
AUTHORS first commit Sep 21, 2016
CONTRIBUTING first commit Sep 21, 2016
CONTRIBUTORS first commit Sep 21, 2016
LICENSE
README.md PiperOrigin-RevId: 216411556 Oct 9, 2018
WORKSPACE Update open-source to internal head. (#80) Aug 5, 2019

README.md

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
    

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.

You can’t perform that action at this time.