mitmproxy/test/bench
Aldo Cortesi c5ad026cbe bench: Add some very simple manual benchmarking helpers
This includes a profiler addon that we might consider for promotion to a
builtin down the track.
2018-03-17 10:06:46 +13:00
..
.gitignore bench: Add some very simple manual benchmarking helpers 2018-03-17 10:06:46 +13:00
backend bench: Add some very simple manual benchmarking helpers 2018-03-17 10:06:46 +13:00
profiler.py bench: Add some very simple manual benchmarking helpers 2018-03-17 10:06:46 +13:00
README.md bench: Add some very simple manual benchmarking helpers 2018-03-17 10:06:46 +13:00
simple.mitmproxy bench: Add some very simple manual benchmarking helpers 2018-03-17 10:06:46 +13:00
simple.traffic bench: Add some very simple manual benchmarking helpers 2018-03-17 10:06:46 +13:00

This directory contains a set of tools for benchmarking and profiling mitmproxy. At the moment, this is simply to give developers a quick way to see the impact of their work. Eventually, this might grow into a performance dashboard with historical data, so we can track performance over time.

Setup

Install the following tools:

go get -u github.com/rakyll/hey
go get github.com/cortesi/devd/cmd/devd

You may also want to install snakeviz to make viewing profiles easier:

pip install snakeviz

In one window, run the devd server:

./backend

Running tests

Each run consists of two files - a mitproxy invocation, and a traffic generator. Make sure the backend is started, then run the proxy:

./simple.mitmproxy

Now run the traffic generator:

./simple.traffic

After the run is done, quit the proxy with ctrl-c.

Reading results

Results are placed in the ./results directory. You should see two files - a performance log from hey, and a profile. You can view the profile like so:

snakeviz ./results/simple.prof