1
0
mirror of https://github.com/httpie/cli.git synced 2024-11-21 17:16:30 +02:00
httpie-cli/extras/profiling
2023-08-06 14:04:32 +02:00
..
benchmarks.py Fix typos (#1431) 2022-10-01 03:34:41 -07:00
README.md Rename repo from httpie/httpie to httpie/cli 2023-08-06 14:04:32 +02:00
run.py Rename repo from httpie/httpie to httpie/cli 2023-08-06 14:04:32 +02: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/cli 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.