Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » GFA-Basic TI68K » News » Rapport de performances (181 réponse(s))
./REPRISE DU POST PRECEDENT (post n°95)   Marquer comme non lu.
limmt Ecrit le: Lundi 8 novembre 2004 à 19:30 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


a oué quand meme ca fait du 52.6x plus rapide sans optimiser, donc en optimisant tu devrais arriver a du 100x facile ;)
continue comme ca :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°96   Marquer comme non lu.
geogeo Ecrit le: Lundi 8 novembre 2004 à 22:45 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ouai je continue mais bon n'oublions pas que ça reste un développement lent car c'est du 100% ASM.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°97   Marquer comme non lu.
geogeo Ecrit le: Lundi 8 novembre 2004 à 23:52 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je viens de faire une optimisation sur l'affectation et je gagne 16% en vitesse.
Voilà le programme de test:

T%=Timer
While I%<10000
  I%=I%+1
Wend
Print (Timer-T%)/200


Sur Atari ST on arrive à: 4.395 secondes.
Sur TI92+ à 12 MHz on arrive à: 3.455 secondes.
Sur VTI on arrive à: 7.465 secondes.

Faut noter que sur VTI c'est bien plus lent mais bon c'est de l'émulation donc pas comparable!

Donc pour l'instant GFA Basic sur TI est plus rapide que GFA Basic sur Atari ST d'environ 21.4%.
Reste à noter que la version Atari ST est plus rapide dans le transtypage ainsi ce code:

T%=Timer
While I%<10000
  I%=I%+1
  B=52
Wend
Print (Timer-T%)/200


S'exécute en 5.365 secondes sur Atari ST contre 6.57 secondes sur TI sauf on on spécifie le transtypage avec B=52. on descend a 4.47 secondes donc bien en dessous de l'Atari ST. Il faut donc bien voir ici que les optimisations apportées par le programmeur peuvent être importantes mais peuvent grossir le programme! Faut choisir.
En tout cas je pense que je peux encore optimiser et encore gagner de la vitesse mais à partir de maintenant le gain en vitesse ne sera pas aussi important sauf dans le cas de la boucle For prévue pour tourner théoriquement autour de 0.59 secondes et les fonctions Add, Mul, Div, Sub, inc, Dec permettant d'augmenter par 2 la vitesse d'exécution actuelle!
-Edité le Lundi 8 novembre 2004 à 23:54 par geogeo-
EDIT : smileys.
-Edité le Mardi 9 novembre 2004 à 18:42 par serioussam-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°98   Marquer comme non lu.
limmt Ecrit le: Mardi 9 novembre 2004 à 16:20 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


putain t'a réussi a dépasser la vitesse de l'atari ST c'est vraiment super :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°99   Marquer comme non lu.
geogeo Ecrit le: Mardi 9 novembre 2004 à 21:42 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Yep, il sera enfin possible pour un novice de faire des projets interessantes en TI-Basic. :)
Je viens de penser à l'instant qu'il est possible d'optimiser les sauts!
Reste une question importantes? L'interpréteur doit t-il créer des tokens de transtypages optimisant ainsi l'exécution du programme mais laissant moins de libertés de contrôle pour le programmeur?

A savoir que je peux peut être ajouter une commande du style:

AUTO_TRANS=FALSE


Il faut aussi penser aux futurs fonctions comme:

Void Fre(0)
Void Ngetchx


Qui ne mémorise pas le résultat ainsi on optimise le programme. Par exemple pour Fre(0) on force un Garbage Collect sans pour autant récupérer le nombre d'octets libre en RAM, ou encore avec Ngetchx où on attend l'appui d'une touche sans sauvegarder sa valeur!

On peut optimiser aussi avec l'instruction:

LET A=52.3
LET M$="Gfa"


Qui a pour but d'effectuer une affectation mais n'effectue aucun transtypage, les types doivent être identiques!

Ou encore en augmentant ou en diminuant l'espace de stockage des chaînes de caractères temporaires (sorte de tas mais très simplifié)!
Avec la fonction RESERVE 16000 !ici on réserve 16 Ko pour les chaînes de caractères!

Bref de nombreuses optimisations seront possibles et on pourra je pense créer de bons projets.

A noter que le scanner est je pense presque terminé dans la mesure où il est capable d'avaler différentes syntaxes, de les interpréter comme il faut et de rajouter des choses assez complexe à analyser comme:

On Error Gosub xxxx


Mais dois-je ajouter les possibilités suivante c'est à dire détecter une puissance de la forme E ou e majuscule et minuscule? Ou encore détecter si le signe moins - est une négation ou une soustraction?

Pour l'instant Gfa Basic connait les puissances genre les nombres comme -25E-10^63, ou encore connait les nombres en Hexa, binaires ou octals de la forme &H65F, &X1011, &O251, pi avec le signe de la TI ou écrit en toute lettres comme TRUE et FALSE et les signes de comparaisons qui peuvent être ceux de la Ti où composés comme différent de qui est égale à <>!
Quant à la structure If le then est facultatif est il est possible de représenter Elseif attaché ou non attaché soit Else if, tout ça pour permettre une adaptation des autres langage basic en Gfa Basic et avoir une certaine souplesse!
Il ne faut pas oublier que l'Atari ST ne supporte pas certaines choses que le GFA Basic sur TI accepte comme la commande Exit seule, les fonctions sans arguments ou la fonction Clr qui n'efface pas les tableaux!
-Edité le Mardi 9 novembre 2004 à 21:45 par geogeo-
-Edité le Mardi 9 novembre 2004 à 21:46 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°100   Marquer comme non lu.
Billy Charvet Ecrit le: Mercredi 10 novembre 2004 à 16:19 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


A propos du dépassement de la vitesse de l'Atari ST,
j'espère que tu en as toutes les commandes geogeo...
T'as la boucle For cette fois ? %)

Et il faut dire aussi au le ST a un 68k 8 Mhz, hein... #hehe#
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°101   Marquer comme non lu.
geogeo Ecrit le: Mercredi 10 novembre 2004 à 16:52 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Yep l'Atari ST tourne à 8 MHz mais il gère le DMA et d'autres trucs que la TI n'a pas mais bon la vitesse de GFA Basic sur TI est interessante quand même!

Pour la boucle for ça ne va pas tarder à arriver, comme je l'ai dit je repart à zéro niveau exécution et donc je dois recoder les fonctions mais en ASM!
Mais en attendant c'est facile à simuler une boucle for!
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°102   Marquer comme non lu.
geogeo Ecrit le: Dimanche 14 novembre 2004 à 02:12 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Petites comparaisons de structures entre le GFA-Basic et l'Atari ST.
Entre chaque structure de boucle on rajoute la ligne B%=25.


I%=10000
While I%
  Dec I%
Wend


Sur TI: 1.7 secondes.
Sur Atari ST: 1.6 secondes.

Ajout de B%=52
Sur TI: 2.66 secondes.
Sur Atari ST: 2.66 secondes.



While I%<=10000
  Inc I%
Wend


Sur TI: 2.34 secondes.
Sur Atari ST: 2.4 secondes.

Ajout de B%=52
Sur TI: 3.305 secondes.
Sur Atari ST: 3.49 secondes.



For I%=0 To 10000
Next I%


Sur TI: 1.785 secondes.
Sur Atari ST: 0.4 secondes.

Ajout de B%=52
Sur TI: 2.735 secondes.
Sur Atari ST: 1.49 secondes.



Do
  Inc I%
  Exit If I%>=10000
Loop


Sur TI: 2.635 secondes.
Sur Atari ST: 2.405 secondes.

Ajout de B%=52
Sur TI: 3.59 secondes.
Sur Atari ST: 3.5 secondes.



While I%<10000
  I%=I%+1
Wend


Sur TI: 3.435 secondes.
Sur Atari ST: 4.39 secondes.

Ajout de B%=52
Sur TI: 4.53 secondes.
Sur Atari ST: 5.49 secondes.

Ici on voit avec les tests qu'on est très proche de l'Atari ST pour des structures simplifiées avec l'instruction Dec ou Inc optimisée. Mais on remarque très vite que la boucle For est 3x plus lente que la version Atari ST sauf sur Atari ST si on ajoute B%=52 on augmente par 3x le temps d'exécution contre 1.5x sur TI. Ensuite on remarque facilement que la TI est bien plus rapide dans les structures avec I%=I%+1.

Donc il faut optimiser les fonctions Inc et Dec et optimiser aussi la boucle For.

Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°103   Marquer comme non lu.
geogeo Ecrit le: Mardi 16 novembre 2004 à 00:03 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Drenière nouvelle, j'ai optimisé à mort la boucle For et voici le résultat entre l'Atari ST et la TI. A noter qu'il y a un gain de 255%. Mais maintenant je ne peux plus faire mieux, je suis au maximum de ce que l'on peut faire en matière de vitesse avec ce langage!


For I%=0 To 10000
Next I%


Sur TI: 0.455 secondes.
Sur Atari ST: 0.4 secondes.

Ajout de B%=52
Sur TI: 1.55 secondes.
Sur Atari ST: 1.49 secondes.

Avec un peu d'optimisation on peut enfin arriver pile voir un tout petit mieux que l'Atari ST.

A noter qu'une boucle For en TI-Basic met 53 secondes se qui fait que GFA Basic est 116x plus rapide que le TI-Basic, bref de quoi faire des programmes très puissants. :)

A noter que la gestion de la boucle For est terminée entièrement. Les instructions Step et DownTo sont connues. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°104   Marquer comme non lu.
limmt Ecrit le: Mardi 16 novembre 2004 à 19:18 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


116X plus rapide!!! :) :p
super génial :) v pouvoir enfin faire qqch en cours de maths qui soit rapide :D vivement que la gestion des NVG et des sprites soit faite :D
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°105   Marquer comme non lu.
limmt Ecrit le: Mardi 16 novembre 2004 à 19:27 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


je comprend pas par contre pourquoi sur le 12Mhz tru arrive pas a etre plus rapide que l'atari a 8Mhz? :(
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°106   Marquer comme non lu.
geogeo Ecrit le: Mardi 16 novembre 2004 à 19:36 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah l'Atari ST possède une gestion de la mémoire DMA, des interfaces qui optimises un peu les tâches du processeur.
Ensuite mon code en ASM n'est pas optimisé à mort. Mais comme je l'ai dit les optimisations futurs n'apporteront plus vraiment de différences significatives. :)
Ah oui j'oublie, la mémoire est beaucoup plus rapide sur Atari ST. :)
-Edité le Mardi 16 novembre 2004 à 19:38 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°107   Marquer comme non lu.
limmt Ecrit le: Mardi 16 novembre 2004 à 19:49 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


a ok
mais bravo parce que du basic 116X plus rapide que le basic normal, ca claque :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°108   Marquer comme non lu.
Sasume Ecrit le: Mercredi 17 novembre 2004 à 10:38 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

geogeo> Il me semble qu'il n'y a pas de waitstate sur TI-89, donc la vitesse de mémoire n'est pas en cause.
Sinon, que fait le DMA précisément ?
    
./Post n°109   Marquer comme non lu.
Billy Charvet Ecrit le: Mercredi 17 novembre 2004 à 10:57 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


limmt >
Et sur l'Atari, tu as de vraies graphismes qui marchent différamment et ne
sont pas forcément à l'initiative du proc... comme les custom chips de l'Amiga,
tu les arrange avec le 68k puis ils fonctionnent tout seuls, récupérant leurs
instructions de la mémoire, ce qui libère un tas de puissance.
-Edité le Mercredi 17 novembre 2004 à 10:58 par Billy Charvet-
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°110   Marquer comme non lu.
Sasume Ecrit le: Mercredi 17 novembre 2004 à 13:04 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Oui, mais en l'occurence, les tests de geogeo ne demandent pas d'afficher quoi que ce soit à l'écran...
    
./Post n°111   Marquer comme non lu.
geogeo Ecrit le: Mercredi 17 novembre 2004 à 13:30 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Le DMA sur Atari augmente le transfère des données entre la mémoire et les périphériques. Donc soulage énormément le processeur.
Ensuite je suis loin d'avoir le niveau en ASM du programmeur qui a programmé GFA Basic sur Atari ST. Il a réussi à développer cet interpréteur en 6 Mois entièrement en ASM (optimisé à mort vu sa puissance et sa vitesse) et enfin très très compact. 60 Ko avec le scanner, parser, tokeniseur, editeur texte et enfin le programme d'exécution. (Bon faut dire que sur Atari ST y a beaucoup de fonctions utilisable de GEM, VDI, BIOS, TOS...). Le seul pb sur Atari ST et que GFA Basic a besoin de toute la mémoire pour fonctionner!

Mais franchement obtenir les même performances que le GFA Basic sur Atari ST même si il existe une marge de 4 Mhz c'est très très bien. Surtout que mes tests on démontré que la TI est plus rapide que l'Atari ST dans le traitement des variables c'est-à-dire que si vous faites par exemple 50 opérations dans une boucle For et que vous reproduisez ce code sur Atari ST. La TI donnera de meilleurs résultats! D'ailleur vous pouvez tester et ainsi voir que je ne ment pas :D
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°112   Marquer comme non lu.
limmt Ecrit le: Mercredi 17 novembre 2004 à 13:59 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


on a tous des atari ST chez nous :D
non vraiment c'est très bien geogeo :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°113   Marquer comme non lu.
geogeo Ecrit le: Jeudi 18 novembre 2004 à 21:17 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je viens d'effectuer d'autres tests bien plus lourds pour les machines (TI68K et Atari ST). A savoir que les tests sont fait dans les même circonstances, je n'utilise pas de flottants! Car bien sûr ça rame sur TI. :D


Cls
T%=Timer
For I%=0 To 1000000
Next I%
Print (Timer-T%)/200


Vous noterez le nombre d'itération d'un million!!!

Sur TI68K: 44,52 secondes (ce qui paraît assez logique puisque avec 10000 cycles on a 0.45 seconde!
Sur Atari ST: 78.42 secondes (bizarre comme résultat! L'Atari ST dans cette situation est 1.75 fois plus lent!!!).
Cela s'explique par la vitesse du processeur sans doute.

Maintenant un code avec la gestion des variables et des calculs...

Cls
T%=Timer
For I%=0 To 100000
  A%=52*I% Div (A%+1)
  B%=(-(-(-A%-A%+A%+A%+A%+A%)))*52
Next I%
Print (Timer-T%)/200
Print A%,B%,I%


A noter que 100000 itérations sont effectuées.

Sur TI68K: 108.58 secondes.
Sur Atari ST: 161.66 secondes. 1,5x plus lent que la TI68K! Cela s'explique par la vitesse du processeur sans doute!

Ce code démontre qu'il faut mieux utiliser For dans certains cas. :D


Cls
T%=Timer
Do
  A%=52*I% Div (A%+1)
  B%=(-(-(-A%-A%+A%+A%+A%+A%)))*52
  Inc I%
  Exit If I%=100000
Loop
Print (Timer-T%)/200
Print A%,B%,I%


A noter que 100000 itérations sont effectuées.

Sur TI68K: 125.89 secondes.
Sur Atari ST: 181.975 secondes. 1,5x plus lent que la TI68K! Cela s'explique par la vitesse du processeur sans doute.

On notera que par rapport au programme précédent l'Atari ST a été ralentie de 1.12x alors que la TI68K a été ralentie de 1.15x. Donc théoriquement la TI68K doit être de plus en plus lente que l'Atari ST lorsque le nombre d'itérations augmente or plus le nombre d'itérations et d'instructions augmentent, plus l'écart de rapidité entre l'Atari ST et la TI68K augmente. Ainsi avec 10x plus de cycles la TI68K est 1.5x plus rapide que l'Atari ST en moyenne!

-Edité le Jeudi 18 novembre 2004 à 21:17 par geogeo-
EDIT: smileys
-Edité le Vendredi 19 novembre 2004 à 07:11 par limmt-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°114   Marquer comme non lu.
limmt Ecrit le: Vendredi 19 novembre 2004 à 07:12 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


a oué donc tu est quand memelargement plus rapide des que tu fait des opérations consistantes :p super :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
  :: Index » GFA-Basic TI68K » News » Rapport de performances (181 réponse(s))
Pages : 6/10     « 1 2 3 4 5 [6] 7 8 9 10 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 184.93ms avec 18 requetes