Skip to content
Automated code benchmark solution.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Automated code benchmark solution.

Empower developers with tools to trace and analyze project performances.

Build Status Pypi Package version


What is Codebench?

Codebench is a tool that runs user-defined benchmark programs, monitors system information and generates reports. It is most powerful when using in a project tracked by git. It runs benchmarks based on different commits and reports the system usage difference, so that users can compare and track performance changes of their project across commits. It can also be used in CI (Continuous Integration) to detect recent commits that increases/decreases project performance.

What Codebench is not?

Codebench itself does not provide benchmark programs. It is not smart enough to generate a benchmark program for your code. Instead, it can be considered as a wrapper or a supervisor for your benchmark.


  • Normal Mode
    • comparison among commits
    • auto-generated report
  • CI Mode (in development)
    • comparison with baseline
    • auto-generated report
    • threshold alarms


Codebench can be simply installed by running:

pip install codebench

If you want to install from a source distribution, extract the tarball and run the following command:

python install


Command Line Interface

Codebench provides a command line interface. Run codebench -h for details.

Configuration File

Tired of typing command in CLI? Write a configuration file in yaml format! Take a look at a sample configuration file, or run codebench --init to help you generate one for your project.


See codebench-sample for details.

A quick demo is demonstrated below:

codebench --script ./ \
--report_types chart --commits cb91b8 3cd96d bb1541

You may also run codebench directly in the root directory of sample project, since it has a .codebench.yml file in the root directory.

memory_usage elapsed_time cpu_usage

You can’t perform that action at this time.