Программы бенчмаркинга в Linux - PullRequest
3 голосов
/ 14 декабря 2010

для назначения нам нужно сравнить наши реализации с различными оптимизациями и параметрами.Есть ли реальный способ сравнения небольших программ в командной строке Linux (я знаю время) с другими параметрами, которые дают мне данные о времени как CSV или что-то подобное?Вывод может быть что-то вроде:

Implementation      Time     
A                    23s
B with -O3 2Threads  15s 
B with -O3 4Threads  10s 

Я почти уверен, что видел что-то подобное на слайдах профессоров, но я не могу вспомнить, кто или когда это было ...

1 Ответ

6 голосов
/ 15 декабря 2010

Почему бы не использовать команду time внутри скрипта bash, что-то вроде:

#!/bin/bash

NPROG=`cat proglist | wc -l`
for i in `seq 1 ${NPROG}`
do
    PROG=`sed -n "${i}p" proglist`
    ARG=`sed -n "${i}p" arglist`
    TIME=`{ time ${PROG} ${ARG}; } 2>&1 | grep real | awk '{print $2}'`
    echo "${TIME} ${PROG} ${ARG}"
done

где proglist - текстовый файл, содержащий программы для выполнения

A
B
B

и arglist - это текстовый файл, содержащий аргументы, что-то вроде:

-a 1 -b 2
-f "foo"
-f "bar"

Вывод скрипта будет выглядеть примерно так:

 0m32.000s A -a 1 -b 2
 1m12.000s B -f "foo"
 5m38.000s B -f "bar"
...