1

Bonjour à vous!

Alors voilà mon problème: dans le souci de d'optimiser mes programmes, j'aimerai savoir si une fonction de base ou une librairie permettait de connaitre le temps d'exécution de de quelques instructions de mon programme (en ms de préférence).
Par exemple à l'aide d'une éventuelle fonction, j'aimerai savoir si pour tester la divisibilité entre deux nombre si la fonction pgcd() est plus rapide ou pas que de calculer la division et tester si la partie décimale est égale à 0.

Merci pour vos répons, j'espère que j'ai été assez clair smile

2

Tu postes dans cette section, donc je suppose que tu programmes en BASIC.
Il peut être amusant d'optimiser les programmes BASIC, mais ce qui donnera de loin les meilleurs résultats (accès direct aux fonctions du système de plus ou moins haut niveau, utilisation de fonctions plus rapides parce que nombre de fonctions du système sont lentes, changement des algorithmes parce qu'on a accès à des fonctions permettant des algorithmes plus efficaces), c'est de faire des programmes ASM, écrits en C et/ou en ASM smile

Ceci étant dit: le temps de chargement, d'exécution et de déchargement d'un programme externe fournissant un timer est bien plus élevé que le temps de calcul du pgcd ou de la division. Même en mettant plusieurs opérations division ou pgcd entre deux appels au programme externe, ça ne serait pas un benchmark très efficace. Pour que ce que tu veux faire ait le maximum de sens, il faut faire un programme ASM qui:
* augmente la fréquence de l'AUTO_INT_5 (fonctions PRG_*) pour avoir une mesure de temps plus précise, ou bien répéter les mêmes opérations de nombreuses fois;
* utilise les fonctions du CAS push_ratio et push_gcd_numbers + delete_between (si c'est pour un micro-benchmark entre division et pgcd) ou des choses comme NG_execute/NG_rationalESI (si c'est pour être un peu plus proche de ce que fait en interne l'OS quand il interprète du code BASIC).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

3

J’avais fait un petit programme, qui mesure justement le temps d’exécution d’un programme passé en paramètre. C’est un programme kernel que tu peux télécharger ici : http://sasume.free.fr/jackiechan68k/download/time.zip
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

4

D'abord, merci pour vos réponses.
mais ce qui donnera de loin les meilleurs résultats, c'est de faire des programmes ASM

Hé bien il est clair que les performances en ASM seront de loin meilleure, cependant je n'ai pas encore envie de me plonger dans l'ASM (pour mes jeux par exemple j'utilise des librairies, ce qui me permet de contourner le problème). En effet pour faire mes programmes de Spé Maths de terminale et quelques jeux, l'ASM me parait superflu... Mais merci quand même du renseigneement! smile

C’est un programme kernel que tu peux télécharger ici : http://sasume.free.fr/jackiechan68k/download/time.zip

Alors là c'est exactement ce que je cherchais, malheureusement le lien est corrompu sad

5

Effectivement j’avais oublié d’uploader un répertoire…
C’est corrigé smile
J’espère que mon programme te sera utile.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

6

Oui çà me sera bien utile!
Merci beaucoup!