1.5 KiB
HTTPie Benchmarking Infrastructure
This directory includes the benchmarks we use for testing HTTPie's speed and the infrastructure to automate this testing across versions.
Usage
Ensure the following requirements are satisfied:
- Python 3.7+
pyperf
Then, run the extras/profiling/run.py
:
$ python extras/profiling/run.py
Without any options, this command will initially create an isolated environment
and install httpie
from the latest commit. Then it will create a second
environment with the master
of the current repository and run the benchmarks
on both of them. It will compare the results and print it as a markdown table:
Benchmark | master | this_branch |
---|---|---|
http --version (startup) |
201 ms | 174 ms: 1.16x faster |
http --offline pie.dev/get (startup) |
200 ms | 174 ms: 1.15x faster |
Geometric mean | (ref) | 1.10x faster |
If your master
branch is not up-to-date, you can get a fresh clone by passing
--fresh
option. This way, the benchmark runner will clone the httpie/httpie
repo from GitHub
and use it as the baseline.
You can customize these branches by passing --local-repo
/--target-branch
,
and customize the repos by passing --local-repo
/--target-repo
(can either
take a URL or a path).
If you want to run a third environment with additional dependencies (such as
pyOpenSSL
), you can pass --complex
.