Nix-Guix-Substitution-Bench.../compareSubsEfficiency

102 lines
3.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu -o pipefail
resultsRoot=$(readlink -f "$1")
echo "[+] Realizing nix closures"
casync="$(nix-build -A nix-casync)"/bin/nix_casync
massRebuildBeforeClosure="$(nix-build -A massRebuild.before)"
massRebuildAfterClosure="$(nix-build -A massRebuild.after)"
nixpkgsChannelsStableClosure="$(nix-build -A nixpkgsChannels.stable)"
nixpkgsChannelsUnstableClosure="$(nix-build -A nixpkgsChannels.unstable)"
firefoxBumpBeforeClosure="$(nix-build -A firefoxBump.before)"
firefoxBumpAfterClosure="$(nix-build -A firefoxBump.after)"
gimpBumpBeforeClosure="$(nix-build -A gimpBump.before)"
gimpBumpAfterClosure="$(nix-build -A gimpBump.after)"
emacsBumpBeforeClosure="$(nix-build -A emacsBump.before)"
emacsBumpAfterClosure="$(nix-build -A emacsBump.after)"
openmpiBumpBeforeClosure="$(nix-build -A openmpiBump.before)"
openmpiBumpAfterClosure="$(nix-build -A openmpiBump.after)"
function collectMetricsForClosure () {
echo "[+] Collecting Casync-related Metrics"
./casync "${casync}" 65536 "${closure}" "${resultsDir}"/casync.csv
echo "[+] Collecting NAR-related Metrics"
./nar "${closure}" > "${resultsDir}"/nar.csv
echo "[+] Collecting file-related Metrics"
./file "${closure}" "${resultsDir}"/file.csv "${resultsDir}"/file-xz-compressed.csv
}
# Before mass rebuild
resultsDir="${resultsRoot}"/before-mass-rebuild
mkdir -p "${resultsDir}"
closure="${massRebuildBeforeClosure}"
collectMetricsForClosure
# After mass rebuild
resultsDir="${resultsRoot}"/after-mass-rebuild
mkdir -p "${resultsDir}"
closure="${massRebuildAfterClosure}"
collectMetricsForClosure
# Channel stable
resultsDir="${resultsRoot}"/nixpkgs-stable-channel
mkdir -p "${resultsDir}"
closure="${nixpkgsChannelsStableClosure}"
collectMetricsForClosure
# Channel Unstable
resultsDir="${resultsRoot}"/nixpkgs-unstable-channel
mkdir -p "${resultsDir}"
closure="${nixpkgsChannelsUnstableClosure}"
collectMetricsForClosure
# Before Firefox Bump
resultsDir="${resultsRoot}"/before-firefox-bump
mkdir -p "${resultsDir}"
closure="${firefoxBumpBeforeClosure}"
collectMetricsForClosure
# After Firefox Bump
resultsDir="${resultsRoot}"/after-firefox-bump
mkdir -p "${resultsDir}"
closure="${firefoxBumpAfterClosure}"
collectMetricsForClosure
# Before gimp Bump
resultsDir="${resultsRoot}"/before-gimp-bump
mkdir -p "${resultsDir}"
closure="${gimpBumpBeforeClosure}"
collectMetricsForClosure
# After gimp Bump
resultsDir="${resultsRoot}"/after-gimp-bump
mkdir -p "${resultsDir}"
closure="${gimpBumpAfterClosure}"
collectMetricsForClosure
# Before emacs Bump
resultsDir="${resultsRoot}"/before-emacs-bump
mkdir -p "${resultsDir}"
closure="${emacsBumpBeforeClosure}"
collectMetricsForClosure
# After emacs Bump
resultsDir="${resultsRoot}"/after-emacs-bump
mkdir -p "${resultsDir}"
closure="${emacsBumpAfterClosure}"
collectMetricsForClosure
# Before openmpi Bump
resultsDir="${resultsRoot}"/before-openmpi-bump
mkdir -p "${resultsDir}"
closure="${openmpiBumpBeforeClosure}"
collectMetricsForClosure
# After openmpi Bump
resultsDir="${resultsRoot}"/after-openmpi-bump
mkdir -p "${resultsDir}"
closure="${openmpiBumpAfterClosure}"
collectMetricsForClosure