mardi 18 avril 2023

STM8 Tiny BASIC V3.2R0

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.