This commit is contained in:
2025-08-02 16:14:27 +08:00
commit cd851adc7e
8 changed files with 827 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
python3 -m venv .
./bin/pip3 install pandas matplotlib
+28
View File
@@ -0,0 +1,28 @@
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv("./x.csv")
# group by mode
modes = df["mode"].unique()
for mode in modes:
plt.figure(figsize=(12, 6))
subset = df[df["mode"] == mode]
# group by key_size/value_size
key_value_combinations = subset.groupby(["key_size", "value_size"])
for (key_size, value_size), group in key_value_combinations:
label = f"key={key_size}B, val={value_size}B"
plt.plot(group["threads"], group["ops"], marker="o", label=label)
plt.title(f"Performance: {mode.upper()}")
plt.xlabel("Threads")
plt.ylabel("OPS")
plt.grid(True)
plt.legend()
plt.tight_layout()
plt.savefig(f"{mode}.png")
plt.close()
Executable
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env bash
cd ..
cargo build --release 1>/dev/null 2> /dev/null
function samples() {
kv_sz=(16 16 100 1024 1024 1024)
# set -x
for ((i = 1; i <= $(nproc); i *= 2))
do
for ((j = 0; j < ${#kv_sz[@]}; j += 2))
do
./target/release/kv_bench --path /home/abby/mace_bench --threads $i --iterations 100000 --mode insert --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0
then
exit 1
fi
./target/release/kv_bench --path /home/abby/mace_bench --threads $i --iterations 100000 --mode get --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0
then
exit 1
fi
./target/release/kv_bench --path /home/abby/mace_bench --threads $i --iterations 100000 --mode mixed --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 70
if test $? -ne 0
then
exit 1
fi
done
done
}
echo mode,threads,key_size,value_size,insert_ratio,ops > x.csv
samples 2>> x.csv