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°57)   Marquer comme non lu.
Billy Charvet Ecrit le: Jeudi 9 septembre 2004 à 09:53 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  


Mmmh, interprété...
Bon, ça me va...
J'aimerais 3 choses:

1- Continue à l'avancer !

2- Voie si tu peux le faire marcher sous PedRom

3- Fais ça en TIGCC Native (tu peux forcément) car la compilation pour PreOS sous
TIGCC 0.95 est loin d'être évidente, et puis ça restera peut-être plus compatible
(et dans tous les cas n'obligera pas l'utilisateur à se charger de pbs de kernel)
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°58   Marquer comme non lu.
geogeo Ecrit le: Jeudi 9 septembre 2004 à 21:03 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Plutôt bizarre ton Basic, FOR est une des commandes les plus caractéristiques du Basic...
un langage Basic peut être constitué d'à peu près n'importe quoi, mais on
rencontre dans tous les Basic un For... ça fait bizarre...


Euh c'est juste que j'ai pas ecnore programmé cette structure. Je suis pas flash ^^

Pardon j'ai pas trop pris de temps pour lire le topic en annonce mais je trouve les
performances étranges... c'est interprété ou compilé ?
Un interpréteur bien fait peut aller à cette vitesse...


C'est un interpréteur, pq, tu penses que s'est encore trop lent pour un interpréteur?

Et puis j'avais pensé plusieurs fois à un compilateur Basic et à son organisation,
et je suis arrivé à tomber sur des trucs qui le rendraient presque aussi performant
que du C... Ces performances intermédiaires entre C et TI-Basic viennent d'où ?


Comment ça?

Tu utilise un typage permissif ?
Càd pas de déclaration de variables ?
Dans ce cas ça explique tout, mais je veux savoir quand même... :)


En effet pas de déclaration de variables, c'est automatique, sauf pour les tableaux bien sûr.
Mais je ne vois pas en quoi cette possibilité rend le langage lent. #confus#.


2- Voie si tu peux le faire marcher sous PedRom


Pour l'instant ça ne fonctionne pas car PedRom ne gère pas entièrement pas les virgules flottantes.


3- Fais ça en TIGCC Native (tu peux forcément) car la compilation pour PreOS sous
TIGCC 0.95 est loin d'être évidente, et puis ça restera peut-être plus compatible
(et dans tous les cas n'obligera pas l'utilisateur à se charger de pbs de kernel)


Hein?
J'utilise juste Preos pour dépasser la limite des 24 Ko, GFA Basic est heuresement autonome, sans kernel.
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°59   Marquer comme non lu.
Billy Charvet Ecrit le: Vendredi 10 septembre 2004 à 14:21 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  


C'est un interpréteur, pq, tu penses que s'est encore trop lent pour un interpréteur?

Non, au contraire, rapide. #triso#

Comment ça?

Mmm, j'avais pas encore remarqué que c'était interprété. :D
Le typage strict ou permissif n'a pas (trop) d'importance dans ce cas.

Pour l'instant ça ne fonctionne pas car PedRom ne gère pas entièrement pas les virgules flottantes.


(Kevin va me tuer)
Peut-être devrait-tu utiliser les flottants IEEE 754. (A la rigueur je peux t'implémenter
une lib pour). Bon ça s'interfacera pas avec l'AMS et le TI-Basic, mais en revanche
ça fonctionnera sous PedRom,
et sous Pyrix "stand-alone". Car je ne compte PAS utiliser le SMAP II sous
Pyrix, mais le IEEE 754, plus petit, et utilisé par le projet GNU officiel...
En fait ainsi on pourrait peut-être se débrouiller sans le patch de GCC ou
avec un petit patch, et un transformeur coff vers NoStub ou bien PXF
(un format que j'ai fait à partir de COFF, mais allégé et pour TI).
Dans ce cas on pourrait utiliser d'autres compilos GNU facilement d'ailleurs.
Le Fortran 77 sur TI (g77 3.4.0) c'est déjà possible
(mais pas simple)


Hein?
J'utilise juste Preos pour dépasser la limite des 24 Ko, GFA Basic est heuresement autonome, sans kernel.

Ouf, j'ai eu peur. Je sais pas ce que j'ai, Pollux doit me rendre
parano avec son GTC IDE... #triso#
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°60   Marquer comme non lu.
geogeo Ecrit le: Vendredi 10 septembre 2004 à 21:03 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


En parlant de Pedrom ça serait bien d'avoir une personne qui teste toutes les fonctions et qui me fasse un rapport. :p

Sinon, il faudra bientôt se pencher sur le format des sprites.
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°61   Marquer comme non lu.
Sasume Ecrit le: Samedi 11 septembre 2004 à 01:13 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Entrelacé.
    
./Post n°62   Marquer comme non lu.
limmt Ecrit le: Samedi 11 septembre 2004 à 12:08 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


compatible avec les sprites TIGCC ca serait bien :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°63   Marquer comme non lu.
LionelA Ecrit le: Samedi 11 septembre 2004 à 12:14 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


Ca veut dire quoi entrelacé ? (une ligne claire, une ligne foncée, une ligne de mask ?)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°64   Marquer comme non lu.
geogeo Ecrit le: Samedi 11 septembre 2004 à 12:24 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


yep c'est ça.
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°65   Marquer comme non lu.
limmt Ecrit le: Samedi 11 septembre 2004 à 13:39 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


ca serait pas plus simple el format des sprites TIGCC?
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°66   Marquer comme non lu.
GoldenCrystal Ecrit le: Samedi 11 septembre 2004 à 15:06 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

Le format entrelacé est celui qui offre les meilleures performances à l'affichage ^^
Kupo !
    
./Post n°67   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 12 septembre 2004 à 00:04 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


limmt :
compatible avec les sprites TIGCC ca serait bien :)

Entièrement d'accord.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°68   Marquer comme non lu.
Billy Charvet Ecrit le: Lundi 13 septembre 2004 à 13:03 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  


geogeo > Pour PedRom, tu sais que ça fonctionne sous VTI...
C'est la meilleure option. Tu t'embêtes pas, personne prend de risque,
on économise notre Flash...
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°69   Marquer comme non lu.
geogeo Ecrit le: Lundi 13 septembre 2004 à 13:14 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 sais. :)
Mais toute façon quand j'utilise un flottant sous Pedrom j'ai un beau Address error à chaque fois. Perso je pense à la fonction atof qui n'est pas implantée à 100%. En tout cas je vais faire des tests et voir ce que ça donne.
-Edité le Lundi 13 septembre 2004 à 13:15 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°70   Marquer comme non lu.
geogeo Ecrit le: Samedi 18 septembre 2004 à 16:49 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Dernière info, le programme n°4 en GFA Basic dans le post n°0 tourne maintenant à 6.335 secondes. Donc j'ai un gain de 2 secondes.

Quant à ce code:
Cls
T=Timer
While I%<=10000
  Inc I%
Wend
Print (Timer-T)/200


Ce programme tourne à 5.74 secondes.

A noter que ce programme tourne à 2.44 secondes sur Atari ST, donc j'ai encore de la marge et je ne sais pas comment faire pour mieux optimiser. Il y a de fortes chances que pour arriver au niveau de l'Atari ST, il faut coder le moteur d'exécution des tokens en 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°71   Marquer comme non lu.
Billy Charvet Ecrit le: Lundi 20 septembre 2004 à 11:02 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  


Hé ben vas-y. :D

Non, plus sérieusement, je pense qu'il te reste à optimiser...
Le C est suffisamment proche, au pire contrôle la sortie assembleur,
regarde ce qui peut être optimisé dedans, et essaye de parvenir à
l'assembleur auquel tu pense en modifiant ton C.
(Même si ça fait de l'à peu près)

Les perfs seront sans doute jamais celles d'assembleur pur, mais si tu
gardes ton code en C, tu gardes la portabilité.

Et si tu t'en fous, utilise de l'assembleur inline pour les parties (vraiment) critiques.
La plupart du temps, optimiser revient à des trucs récurrents comme sortir le plus
possible de choses des boucles. L'optimisation faite par le compilo est déjà efficace.
Bien des gens sont d'ailleurs incapable d'optimiser autant qu'un compilo, puisque
le compilo est un programme, systématique, alors que les gens peuvent ne pas voir
quelquechose qui peut être optimisé, ou ne pas connaître.

(Ex sur PC: xor eax,eax pour return 0, au lieu de mov eax,0.)

Et surtout le C se maintient bien. On peut rapidement repérer une erreur,
tandis qu'en assembleur il faudra forcément prendre son temps et regarder
pas à pas.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°72   Marquer comme non lu.
Sasume Ecrit le: Lundi 20 septembre 2004 à 11:38 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Si tu passes à l'ASM, je te conseille de reprendre depuis le début, de ne pas partir de ce que génère GCC.
Tu peux vraiment trouver des moyens pour accélérer énormément en ASM pur :)
    
./Post n°73   Marquer comme non lu.
geogeo Ecrit le: Vendredi 1er octobre 2004 à 22:06 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Pour le plaisir.
Petite comparaison avec le programme du triangle de Sierpinski sur HW2 TI92+
Temps d'execution:
TI-Basic: 4 min 28 = 268 sec
GFA-Basic: 35 sec

GFA-Basic est 7.65x plus rapide que le TI-Basic :p

TI-Basic

sierpens()
Prgm
Local x,y,k,n
ClrDraw
0->xmin:0->ymin
1->xmax:1->ymax
rand()->x:rand()->y
For k,1,3000
  rand()->n
  If n<=1/3 Then
    0.5*x->x
    0.5*y->y
  EndIf
  If 1/3<n and n<=2/3 Then
    0.5*(0.5+x)->x
    0.5*(1+y)->y
  EndIf
  If 2/3<n Then
    0.5*(1+x)->x
    0.5*y->y
  EndIf
  PtOn x,y
EndFor
EndPrgm



GFA-Basic
Cls
T%=Timer
X=Rnd
Y=Rnd
K%=1
While K%<=3000
  N=Rnd
  If N<=1/3 Then
    Mul X,0.5
    Mul Y,0.5
  Endif
  If 1/3<N And N<=2/3 Then
    X=0.5*(0.5+X)
    Y=0.5*(1+Y)
  Endif
  If 2/3<N Then
    X=0.5*(1+X)
    Mul Y,0.5
  Endif
  
  Plot Int(239*X),Int((1-Y)*127)
  
  Exit If getkey=264
  Inc K%
Wend
Print "Temps"Timer-T/200

-Edité le Samedi 2 octobre 2004 à 15:41 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°74   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 2 octobre 2004 à 00:19 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


C:
#include <tigcclib.h>

void _main(void)
{
 ClrScr();
 unsigned long T=FiftyMsecTick;
 srand(T);
 unsigned X=random(240);
 unsigned Y=random(128 );
 unsigned K=1;
 while (K<=30000) {
  int N=random(3);
  switch(N) {
   case 0:
    X>>=1;
    Y>>=1;
    break;
   case 1:
    X=(X>>1)+60;
    Y=(Y>>1)+64;
    break;
   default:
    X=(X>>1)+120;
    Y>>=1;
    break;
  }
  poke_bset((long)(short)(0x5ae2-Y*30+(X>>3)),7-X);
  K++;
 }
 unsigned long Timer=FiftyMsecTick;
 ngetchx();
 ClrScr();
 printf_xy(0,0,"Temps: %lu ms",(Timer-T)*50);
 ngetchx();
}

Options de compilation:
E:\TI-89\Compilers\tigcc\Projects>tprbuilder sierpin.tpr
tprbuilder: tigcc sierpin.c  -o "sierpin" -n sierpin -O3 -Wall -W -Wwrite-string
s -WA,-g,-t --optimize-nops --optimize-returns --optimize-branches --optimize-mo
ves --optimize-tests --optimize-calcs --remove-unused --cut-ranges --reorder-sec
tions --merge-constants --omit-bss-init -DUSE_TI89 -DUSE_TI92PLUS -DUSE_V200 -DM
IN_AMS=200 -DUNOFFICIAL_OS_SUPPORT -DOPTIMIZE_ROM_CALLS -DMERGE_BSS -DKERNEL_FOR
MAT_DATA_VAR -DSAVE_SCREEN

Temps: 1500 ms. :p
TIGCC est 23.33x plus rapide que le GFA-Basic. :p
-Edité le Samedi 2 octobre 2004 à 00:20 par Kevin Kofler-
-Edité le Samedi 2 octobre 2004 à 00:29 par Kevin Kofler-
-Edité le Samedi 2 octobre 2004 à 00:43 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°75   Marquer comme non lu.
geogeo Ecrit le: Samedi 2 octobre 2004 à 12:54 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


méeuh en plus tu travails avec des entiers, et bah je vais faire pareil tient. :p
-Edité le Samedi 2 octobre 2004 à 12:54 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°76   Marquer comme non lu.
geogeo Ecrit le: Samedi 2 octobre 2004 à 15:40 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Oups désolé j'ai fais une erreur, la valeur correcte pour la boucle est 3000 et non 30000.
Mais bon dans tout les cas TIGCC explose GFA Basic. ^^

Voici un nouveau code optimisé qui s'execute en 8.935 secondes:
Cls
T%=Timer
X%=240
Y%=128
K%=1
While K%<=3000
  N%=Random(3)
  If N%=0 Then
    Div X%,2
    Div Y%,2
  Elseif N%=1 Then
    Div X%,2
    Add X%,60
    Div Y%,2
    Add Y%,64
  Else
    Div X%,2
    Add X%,120
    Div Y%,2
  Endif

  Plot X%,Y%
  Inc K%
Wend
Print "Temps:"'(Timer-T%)/200


Avec 30000 points je met 89.5 secondes mais chut! #timide#
-Edité le Samedi 2 octobre 2004 à 15:40 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
    
  :: Index » GFA-Basic TI68K » News » Rapport de performances (181 réponse(s))
Pages : 4/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 51.1ms avec 18 requetes