httpie-cli/extras/profiling/README.md
2022-06-19 00:20:22 -07:00

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.