Publié : dim. 16/avr./2006 14:32
Je viens de faire des tests : PureBasic / GCC
voici le code GCC :voici le code PureBasic :Les résultats des calculs sont les mêmes, mais GCC se prend une grosse déculottée par PureBasic
En calcul pur, PureBasic est légèrement meilleur et en rajoutant sin et sqrt, GCC est complètement à la ramasse..., au lieu d'intégrer directement la fonction assembleur FSIN il doit certainement appeler une fonction...
Voici les résultats d'une série de 5 tests:
GCC => 18179 / 19603 / 18617 / 18636 / 18570
PureBasic => 4698 / 4648 / 5993 / 4645 / 5143
voici le code GCC :
Code : Tout sélectionner
int i,a,b,c,d;
float e,f;
LARGE_INTEGER t1,t2;
QueryPerformanceCounter(&t2);
for (i = 0; i <= 10000; i++){
a++;
b = a * 2;
c = b * a;
d = (c + b)/a;
e = sin(50.0)+d;
f = e*e+sqrt(e);
}
QueryPerformanceCounter(&t1);
CHAR Texte[128];
sprintf(Texte, "f = %f / Intervalle : %d",f, t1.LowPart - t2.LowPart);
MessageBox(0,Texte,"Test",MB_OK);
Code : Tout sélectionner
i.l:a.l:b.l:c.l:d.l
e.f:f.f
t1.LARGE_INTEGER:t2.LARGE_INTEGER
QueryPerformanceCounter_(t2)
For i = 0 To 10000
a+1
b = a * 2
c = b * a
d = (c + b)/a
e = Sin(50.0)+d
f = e*e+Sqr(e)
Next
QueryPerformanceCounter_(t1)
MessageRequester("Test","f = "+StrF(f)+" / Intervalle : "+Str(t1\lowpart - t2\lowpart))

En calcul pur, PureBasic est légèrement meilleur et en rajoutant sin et sqrt, GCC est complètement à la ramasse..., au lieu d'intégrer directement la fonction assembleur FSIN il doit certainement appeler une fonction...



Voici les résultats d'une série de 5 tests:
GCC => 18179 / 19603 / 18617 / 18636 / 18570
PureBasic => 4698 / 4648 / 5993 / 4645 / 5143