httpie-cli/extras/profiling
2022-07-03 14:54:34 +02:00
..
benchmarks.py docs: Fix a few typos (#1419) 2022-07-03 14:54:34 +02:00
README.md Fix paths to run benchmarking script (#1416) 2022-06-19 00:20:22 -07:00
run.py Fix paths to run benchmarking script (#1416) 2022-06-19 00:20:22 -07:00

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.