HOMS-OSS / ruperf

A smart and sophisticated performance analysis crab.
GNU General Public License v2.0
7 stars 5 forks source link

Overview

See the overview for an introduction to the project.

Requirements

Rust is required for this project. To download Rustup and install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

More on installing Rust.

Linux 5.x+ is required to run this project.

Build

To build this project:

To build a sample program:

Install

To install this project:

Run

Verification

Verification is done through a combination of cargo test, manual inspection comparing output of perf stat with output of ruperf on programs as documented in pull request history, and through inspection of contributor code.

Demo/Walkthrough

Watch our demo video about ruperf on YouTube:

Ruperf Demo / Walkthrough

Permissions

This tool uses the perf_event_open() system call, which requires some special permissions. While our tool currently checks if perf_event_paranoid is equal to 0, this is less than ideal is some situations. A way around this is to change the capabilities of the ruperf executable using setcap.

For Linux 5.8+, use CAP_PERFMON; otherwise use CAP_SYSADMIN.

Contributing Guidelines

ruperf is an open source project and is open to recieving contributions!

Please see CONTRIBUTING

Code of Conduct

We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.

Rust Community Code of Conduct

References

Linux-kernel wiki

The Rust Performance Book

Flame Graphs

License

Gplv2

Core Team