คุณสามารถใช้R
เพื่อคำนวณค่าเฉลี่ยค่าเบี่ยงเบนมาตรฐานและค่าที่น่าสนใจอื่น ๆ ได้อย่างรวดเร็ว
ตัวอย่างเช่นคุณสามารถใช้เวลา GNU เพื่อเขียนการวัดรันไทม์หลายรายการลงในไฟล์ CSV:
function measure
{
f=$1; shift
n=$2; shift
echo wall,user,sys,rss > "$f"
for i in $(seq $n); do
/usr/bin/time --output "$f" --append --format '%e,%U,%S,%M' "$@" >/dev/null
done
}
จากนั้นคุณสามารถสร้างค่าด้วย R ดังนี้:
Rscript --vanilla -e "b=read.csv(file='$f');summary(b);sapply(b, sd);"
ฉันได้สร้างสคริปต์มาตรฐานขนาดเล็กที่สามารถทำการพิมพ์ R ผลลัพธ์ได้เช่น:
$ benchmark.sh 100 ./some_prog arg1 arg2
n=100 | min | Q1 | med | mean | Q3 | max | std
wall | 0.0400 | 0.0400 | 0.0500 | 0.0471 | 0.0500 | 0.0800 | 0.00624
user | 0.0400 | 0.0400 | 0.0400 | 0.0426 | 0.0400 | 0.0700 | 0.00562
sys | 0 | 0 | 0 | 0 | 0 | 0 | 0.00000
rss | 2608 | 2657 | 2704 | 2728 | 2764 | 2920 | 95.06524
os.system()
ทำให้เกิดค่าใช้จ่ายในการโทร / สร้างเปลือกด้วยแต่ละคำสั่ง น่าจะใช้ดีกว่า subprocess.call ()