J'ai repris le travail sur mon projet STM8_Tiny BASIC. J'en suis rendu maintenant à la version 3.2R0. Cette version consiste pour l'essentiel à un travail d'optimisation de la machine virtuelle qui exécute le bytecode, pour la rendre plus rapide. J'ai obtenu une amélioration intéressante comme le montre les résultats suivants.
Programme de test
10 ' for next speed test
12 LET T = TICKS
14 FOR I = 1 TO 10000
16 NEXT I
18 ? TICKS - T ; " MSEC"
20 ' DO UNTIL TEST
22 LET I = 1 , T = TICKS
24 DO LET I = I + 1 : UNTIL I > 10000
26 ? TICKS - T ; " MSEC"
28 ' GOTO LOOP
30 LET I = 1 , T = TICKS
32 LET I = I + 1 : IF I <= 10000 GOTO 32
34 ? TICKS - T ; " MSEC"
program address: $91, program size: 241 bytes in RAM memory
Résultats de la version antérieure V3.1R13
>RUN
115 MSEC
771 MSEC
846 MSEC
Résultats obtenus avec cette version V3.2R0
>run
84 MSEC
451 MSEC
513 MSEC
Autre test
Un autre bon test est l'exécution du programme pwm-soft.bas. En mesurant la fréquence PWM avec un oscilloscope j'Obtient 95 Hertz pour la version antérieure et 144 Hertz pour cette version. Cet un bon test car la vitesse PWM est directement lié à la vitesse d'exécution de la boucle LOOP. Donc en général la machine virtuelle exécute le code 144/95=1.5 fois plus rapidement.
Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.