Scilab et Temps de calcul

Fermé
Thorias - 17 mai 2009 à 17:30
 dridri - 15 mars 2013 à 12:49
Bonjour,

J'ai besoin de savoir le temps de calcul d'un fonction , seulement avec la syntaxe donnée dans l'aide de scilab pour la fonction tic // toc cela ne marche pas ....
Si quelqu'un aurai un listing montrant comment la fonction marche .

Merci d'avance ! et bonne journée
A voir également:

5 réponses

Bonjour thorias,

la syntaxe d'utilisation des fonction tic()/toc() est la suivante :

tic()//démarre le chronomètre
....//liste d'instruction dont tu veux chronométrer l'exécution
toc()//arrête le chronomètre et renvoie le temps CPU écoulé depuis le dernier appel à tic()

par exemple si tu exécutes le script suivant :

8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----
tic()
s=0;
for k=1:10^5
s=s+1/k^2;
end
temps=toc()
8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----

tu aura dans la variable "temps" le temps écoulé entre tic() et toc().
Deux remarques importantes :
- si le temps d'exécution est trop court (<1 mlilliseconde) alors toc() renvoie 0
- si les instructions entre tic() et toc() provoque des affichages dans la console le temps mesuré entre tic() et toc() va contenir le temps nécessaire à l'affichage (qui peut être beaucoup plus long que le temps d'éxécution en particulier si scilab s'est arrêté en te demandant "[More (y or n ) ?]" ...) c'est pour cette raison que dans mon exemple je mes des point-virgules après chaque instruction.

Philippe.
5
salut à tous !

je viens avec bcp de retard mais ca pourra servir a d'autres.
moi j'utilise ca :

pvm_set_timer() // on met le timer à zéro

ton code

pvm_get_timer() // scilab te donne le temps ecoule depuis le set_timer

bonne journee !
ed
2
bonjour
juste pour ajouter qu'on peut comparer les temps CPU en utilisant la fonction timer() qui s'utilise de la façon suivante


timer()
opérations;
rigolade;
café;

temps = timer()

il ne prend en compte que les cycles où Scilab utilise effectivement la ressource CPU.
après je n'ai pas fait de test pour vérifier la validité des résultats, je fais confiance à l'aide Scilab

bisou les loulous
1
Merci philippe,

Mon problème venait alors du temps pris par ma procédure ! beaucoup trop courte, et sinon est ce que le temps de calcul prend en compte juste le nombre d' "actions" fait par le programme ou depend des activité windows ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour Thorias,

il est clair que si windows est occupé à autre chose pendant que tu lances un calcul dans scilab ça va influer (négativement) sur le temps de réponse, donc sur le temps CPU renvoyé par toc(). Si tu veux faire des tests pour confirmer une complexité estimée d'un algorithme, il faut faire attention qu'il y ait le moins de choses possible à tourner sur la machine.

Philippe.
0