2010-12-14 42 views
3

Pour une affectation, nous devons référencer nos implémentations avec différentes optimisations et paramètres. Existe-t-il un moyen réaliste de comparer les petits programmes sur la ligne de commande linux (je connais le temps) avec différents paramètres qui me donnent les données de temps au format CSV ou quelque chose de similaire? La production pourrait être quelque chose comme:Programmes de benchmarking sous Linux

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

Je suis sûr que je l'ai vu quelque chose comme ça sur quelques diapositives de professeurs mais je ne me souviens pas qui ou quand il était ...

Répondre

6

Pourquoi ne pas utiliser time commande à l'intérieur d'un script bash, quelque chose comme:

#!/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 est un fichier texte contenant les programmes à exécuter

A 
B 
B 

et arglist est un fichier texte contenant les arguments, quelque chose comme:

La sortie du script regardera comme:

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