Scilab et Temps de calcul [Fermé]

Signaler
-
 dridri -
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

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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
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
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 ??
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.