Bonjour,
Cela faisant quelques heures que je me prend la tête sur une question qui doit être vraiment basique, je me permet de me tourner vers vous.
Le problème : exécuter une centaine de fois un de mes scripts c++ (avec des paramètres différents chaque fois), et mesurer le temps cpu de chacune des 100 exécutions. Plus précisement, je voudrais avoir un fichier avec une structure de la forme :
1 2 3 4 5 6
|
->Résultats de l'exécution 1
->Temps de l'exécution 1
->Résultats de l'exécution 2
->Temps de l'exécution 2
etc... |
En utilisant la fonction "time", je me suis heurté aux problèmes suivants :
-L'option "-o" (et "--output") indiquée dans le manuel, me retourne une erreur. Plus précisemment :
time --output=test.txt ./main
me retourne
bash: --output=test.txt : commande introuvable
-En tentant de rediriger le canal d'erreur standard vers le fichier où je voudrais tout avoir, je me retrouve avec tous les temps en haut, et les résultats en bas ; cad quelque chose de la forme
1 2 3 4 5
|
->Temps de l'exécution 1
->Temps de l'exécution 2
->Résultats de l'exécution 1
->Résultats de l'exécution 2 |
; ce qui est assez inexploitable
-En tentant de copier, après chaque exécution, le fichier où est redirigé le canal d'erreur, vers le fichiers où sont les résutlats, cad en faisant :
1 2 3 4 5 6 7 8 9
|
exec 2>/...chemin.../erreurs.txt 1>/..chemin.../resultats.txt
for N in 50 100; do
time /...chemin.../main $N
cat /...chemin.../erreurs.txt >> /...chemin.../resultats.txt
rm /...chemin.../erreurs.txt
touch /...chemin.../erreurs.txt
done |
; ça ne marche pas non plus (erreurs.txt n'est pas recopié dans resultats.txt)
Bref, avez vous une idée pour me permettre d'aboutir au résultat souhaité ?
Merci par avance de vos suggestions !
Partager