Add a basic venv benchmark (#853)

This commit is contained in:
Charlie Marsh 2024-01-09 12:43:16 -05:00 committed by GitHub
parent ee6d809b60
commit 7f6aa1a236
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

33
scripts/benchmarks/venv.sh Executable file
View file

@ -0,0 +1,33 @@
#!/usr/bin/env bash
###
# Benchmark the virtualenv initialization against `virtualenv`.
#
# Example usage:
#
# ./scripts/benchmarks/venv.sh ./scripts/benchmarks/requirements.txt
###
set -euxo pipefail
###
# Create a virtual environment without seed packages.
###
hyperfine --runs 20 --warmup 3 \
--prepare "rm -rf .venv" \
"./target/release/puffin venv --no-cache" \
--prepare "rm -rf .venv" \
"virtualenv --without-pip .venv" \
--prepare "rm -rf .venv" \
"python -m venv --without-pip .venv"
###
# Create a virtual environment with seed packages.
#
# TODO(charlie): Support seed packages in `puffin venv`.
###
hyperfine --runs 20 --warmup 3 \
--prepare "rm -rf .venv" \
"virtualenv .venv" \
--prepare "rm -rf .venv" \
"python -m venv .venv"