Benchmark fixes
This commit is contained in:
parent
a28e69ddb0
commit
977b77463a
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -Eeuo pipefail
|
||||||
|
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
|
|
||||||
for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
|
for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
|
||||||
|
@ -9,12 +10,19 @@ done
|
||||||
|
|
||||||
results_dir="$PWD/results"
|
results_dir="$PWD/results"
|
||||||
input_dir="$PWD/inputs"
|
input_dir="$PWD/inputs"
|
||||||
iterations=100
|
iterations=1
|
||||||
|
|
||||||
pushd runners
|
pushd runners >/dev/null
|
||||||
for r in *; do
|
for r in *; do
|
||||||
pushd "$r"
|
if [ ! -d "$r" ]; then
|
||||||
./build
|
continue
|
||||||
sudo --preserve-env=MHB_HTML_ONLY,PATH MHB_ITERATIONS=$iterations MHB_INPUT_DIR="$input_dir" nice -n -20 taskset -c 1 ./run | tee "$results_dir/$r.json"
|
fi
|
||||||
popd
|
echo "Running $r..."
|
||||||
|
pushd "$r" >/dev/null
|
||||||
|
out="$results_dir/$r.json"
|
||||||
|
sudo --preserve-env=MHB_HTML_ONLY,PATH MHB_ITERATIONS=$iterations MHB_INPUT_DIR="$input_dir" nice -n -20 taskset -c 1 ./run > "$out"
|
||||||
|
popd >/dev/null
|
||||||
done
|
done
|
||||||
|
popd >/dev/null
|
||||||
|
|
||||||
|
echo "All done!"
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
shopt -s nullglob
|
||||||
|
|
||||||
|
pushd runners >/dev/null
|
||||||
|
for r in *; do
|
||||||
|
if [ ! -d "$r" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "Building $r..."
|
||||||
|
pushd "$r" >/dev/null
|
||||||
|
./build
|
||||||
|
popd >/dev/null
|
||||||
|
done
|
||||||
|
popd >/dev/null
|
||||||
|
|
||||||
|
echo "All done!"
|
|
@ -7,6 +7,18 @@ const iterations = parseInt(process.env.MHB_ITERATIONS, 10);
|
||||||
const inputDir = process.env.MHB_INPUT_DIR;
|
const inputDir = process.env.MHB_INPUT_DIR;
|
||||||
const htmlOnly = process.env.MHB_HTML_ONLY === "1";
|
const htmlOnly = process.env.MHB_HTML_ONLY === "1";
|
||||||
|
|
||||||
|
const esbuildCss = (code) =>
|
||||||
|
esbuild.transformSync(code, {
|
||||||
|
loader: "css",
|
||||||
|
minify: true,
|
||||||
|
}).code;
|
||||||
|
|
||||||
|
const esbuildJs = (code) =>
|
||||||
|
esbuild.transformSync(code, {
|
||||||
|
loader: "js",
|
||||||
|
minify: true,
|
||||||
|
}).code;
|
||||||
|
|
||||||
const htmlMinifierCfg = {
|
const htmlMinifierCfg = {
|
||||||
collapseBooleanAttributes: true,
|
collapseBooleanAttributes: true,
|
||||||
collapseInlineTagWhitespace: true,
|
collapseInlineTagWhitespace: true,
|
||||||
|
@ -33,18 +45,6 @@ const htmlMinifierCfg = {
|
||||||
useShortDoctype: true,
|
useShortDoctype: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
const esbuildCss = (code) =>
|
|
||||||
esbuild.transformSync(code, {
|
|
||||||
loader: "css",
|
|
||||||
minify: true,
|
|
||||||
}).code;
|
|
||||||
|
|
||||||
const esbuildJs = (code) =>
|
|
||||||
esbuild.transformSync(code, {
|
|
||||||
loader: "js",
|
|
||||||
minify: true,
|
|
||||||
}).code;
|
|
||||||
|
|
||||||
const results = fs.readdirSync(inputDir).map((name) => {
|
const results = fs.readdirSync(inputDir).map((name) => {
|
||||||
const src = fs.readFileSync(path.join(inputDir, name), "utf8");
|
const src = fs.readFileSync(path.join(inputDir, name), "utf8");
|
||||||
const start = process.hrtime.bigint();
|
const start = process.hrtime.bigint();
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
set -Eeuxo pipefail
|
set -Eeuxo pipefail
|
||||||
|
|
||||||
cargo run --release
|
./target/release/minify-html-bench
|
||||||
|
|
|
@ -22,8 +22,7 @@ fn main() {
|
||||||
let source = fs::read(t.path()).unwrap();
|
let source = fs::read(t.path()).unwrap();
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
for _ in 0..iterations {
|
for _ in 0..iterations {
|
||||||
let data = source.to_vec();
|
let _ = minify(&source, &cfg);
|
||||||
minify(&source, &cfg);
|
|
||||||
};
|
};
|
||||||
let elapsed = start.elapsed().as_secs_f64();
|
let elapsed = start.elapsed().as_secs_f64();
|
||||||
results.push((t.file_name().into_string().unwrap(), elapsed));
|
results.push((t.file_name().into_string().unwrap(), elapsed));
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
set -Eeuxo pipefail
|
set -Eeuxo pipefail
|
||||||
|
|
||||||
cargo run --release
|
./target/release/minify-html-onepass-bench
|
||||||
|
|
|
@ -12,7 +12,7 @@ fn main() {
|
||||||
let tests = fs::read_dir(input_dir).unwrap().map(|d| d.unwrap());
|
let tests = fs::read_dir(input_dir).unwrap().map(|d| d.unwrap());
|
||||||
|
|
||||||
let mut results: Vec<(String, f64)> = Vec::new();
|
let mut results: Vec<(String, f64)> = Vec::new();
|
||||||
let mut cfg = Cfg {
|
let cfg = Cfg {
|
||||||
minify_css: !html_only,
|
minify_css: !html_only,
|
||||||
minify_js: !html_only,
|
minify_js: !html_only,
|
||||||
};
|
};
|
||||||
|
@ -22,7 +22,7 @@ fn main() {
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
for _ in 0..iterations {
|
for _ in 0..iterations {
|
||||||
let mut data = source.to_vec();
|
let mut data = source.to_vec();
|
||||||
let _ = in_place(&mut data, &cfg).unwrap();
|
let _ = in_place(&mut data, &cfg).expect("failed to minify");
|
||||||
};
|
};
|
||||||
let elapsed = start.elapsed().as_secs_f64();
|
let elapsed = start.elapsed().as_secs_f64();
|
||||||
results.push((t.file_name().into_string().unwrap(), elapsed));
|
results.push((t.file_name().into_string().unwrap(), elapsed));
|
||||||
|
|
Loading…
Reference in New Issue