Debat Languages Basics
je veux bien, mais dis moi d'abord pourquoi est-ce que je dois relire ???????Coolman a écrit :Je serais curieux de savoir sur quoi exactement tu es d'accordOliv a écrit :Dobro, je suis plutôt d'accord avec toi, mais dire que DarkBasic est un language compilé et non interprété![]()
, mais avant relis si c'est possible ce post...
Donne le code, qu'on voit ça et que ça puisse être testé sans debugger.J'ajoute que je suis en train de faire un test de tri avec l'algo shell metzer sur un tableau d'un million d'elements et il s'avere que blitzbasic ecrase tous les autres compilos niveau vitesse de traitement, les faits sont las, pour le reste, ce n'est que du vent
S'il y a effectivement une différence, j'aimerais voir pourquoi.
Qui a blitz et pure (versions non bridées) pour comparer?
Tout simplement parce je le repete, les faits sont la, blitzbasic (en plus j'ai la version demo) est plus rapide que tous les autres...Oliv a écrit :je veux bien, mais dis moi d'abord pourquoi est-ce que je dois relire ???????Coolman a écrit :Je serais curieux de savoir sur quoi exactement tu es d'accordOliv a écrit :Dobro, je suis plutôt d'accord avec toi, mais dire que DarkBasic est un language compilé et non interprété![]()
, mais avant relis si c'est possible ce post...
reste que l'optimisation n'est peut etre pas votre objectif, je dois dire que pureb est suffisement rapide comme ca bien que je n'ai pas testé la version complete...
apres tout, si vous etes fans de pureb, grand bien vous fasse, quand a moi, je n'ai pas encore achete de language, donc je continue mes tests, et je crois bien que c'est blitzmax que je choisirais s'il est aussi performant que le dit son auteur, ,un autre critere, l'achat de la version mac donne apparement l'acces gratuits aux autres plateforme windows et linux, comme j'ai l'intention de m'acheter le mac mini (une petit merveille), ca me convient tout a fait...
Pour hardy, j'ai appliqué l'algo de tri de shell metzer sur un tableau de 1 millions d'elements, et j'ai ete un peu surpri de la rapidité de blitz, je paufine ca et je postes le code...
Jusqu'a maintenant, je n'avais pas fait les tests pour Blitz pour la comparaison car le code posté au début n'était pas bon.
Je pose la question: qui affirme que Blitz est plus rapide?
Mes résultats montrent le contraire.
comparaison:
Blitzbasic
Calcul sur les nombre entiers :
Addition 174
soustraction 263
multiplication 153
division 1364
Calcul sur les nombre reels :
Addition 337
soustraction 354
multiplication 394
division 501
Pure basic
Calcul sur les nombre entiers :
Addition 170
soustraction 231
multiplication 190
division 1322
Calcul sur les nombre reels :
Addition 130
soustraction 150
multiplication 131
division 430
Ibasic Pro
Calcul sur les nombre entiers :
Addition 300
soustraction 271
multiplication 340
division 1653
Calcul sur les nombre reels :
Addition 801
soustraction 721
multiplication 731
division 1402
Je pose la question: qui affirme que Blitz est plus rapide?
Mes résultats montrent le contraire.
comparaison:
Blitzbasic
Calcul sur les nombre entiers :
Addition 174
soustraction 263
multiplication 153
division 1364
Calcul sur les nombre reels :
Addition 337
soustraction 354
multiplication 394
division 501
Pure basic
Calcul sur les nombre entiers :
Addition 170
soustraction 231
multiplication 190
division 1322
Calcul sur les nombre reels :
Addition 130
soustraction 150
multiplication 131
division 430
Ibasic Pro
Calcul sur les nombre entiers :
Addition 300
soustraction 271
multiplication 340
division 1653
Calcul sur les nombre reels :
Addition 801
soustraction 721
multiplication 731
division 1402
Merci Dennis, un peu de soutien, ca fait du bienDenis a écrit :Je suis d'accord avec toi Coolman, la vitesse est un élément à ne pas négliger . C'est d'autant plus vrai pour les langages qui tripotent de l'image, 2 ou 3 D comme Pure.
D'ailleurs, moi j'aime ces tests, en plus ça oblige un peu Fred à optimiser son code (.)
Suite a la demande de hardy, voici les deux codes Blitz et pure, j'ai d'abord utilisé un tableau de 1 millions d'elements ensuite de 2, resultas :
Sur 1 Millions D'elements :
Blitz : 1141
Pureb : 8743
Sur 2 Millions D'elements :
Blitz : 2754
Pureb : 21819
Precisions : la version de blitz est la demo, je suppose que le programme compilé avec la version complete serait meilleur, pour purebasic, le debug est active, je n'ai que la version demo...
Il y'a des variations, n'oubliez pas qu'il s'agit ici de millieme de seconde, si vous voulez corser, vous pouvez toujours initialiser un tableau avec plus d'elements dans la limite variables et place memoire...
Pour ce qui est de l'algo, je n'ai rien inventé, l'algo porte le nom de son auteur, je n'ai fait que l'adapter au basic, c'est un algo reputé tres rapide, pour plus d'info, google est votre ami...
Pour ceux qui veulent tester, voici les codes, pour les autres, epargnez moi les remarques inutiles et sans interet, je suis fatigué d'y repondre...
Par contre je serais beaucoup plus interessé par vos resultas sur la version demo de blitz et celle complete de pureb
*** Code BlitzBasic ***
Code : Tout sélectionner
Boucle%=2000000
Tmp%=0
Print "Algorithme de Tri Shell Metzer"
Print
Print
Print "Constitution d'un tableau de " + Str$(Boucle%)
Print "elements aleatoires en cours..."
Dim a%(boucle%)
For j%=1 To boucle% : a%(j%)=Rnd(0,boucle%)+32000 : Next
Print
Print "Tableau constitué, Tri en cours..."
nbr% = boucle%
pa% = nbr%
DEB% = MilliSecs ()
While pa% >= 1
pa% = Int(pa% / 2)
For j% = 1 To nbr% - pa%
i% = j%
While i% >= 1
If a%(i%) > a%(i% + pa%) Then
Tmp%=a%(i%)
a%(i%)=a%(i% + pa%)
a%(i% + pa%)=Tmp%
i% = i% - pa%
Else
i% = 0
End If
Wend
Next
Wend
FIN% = MilliSecs ()
Print
Print "Terminé : "+Str$(FIN%-DEB%)
WaitKey()
End
*** Code Pure Basic ***
Code : Tout sélectionner
DefType.l Boucle, nbr, pa, i, j, Tmp
DefType.f DEB, FIN
Boucle =2000000
Tmp =0
OpenConsole()
Printn ("Algorithme de Tri Shell Metzer")
Printn ("")
Printn ("")
Printn ("Constitution d'un tableau de " + Str(Boucle))
Printn ("elements aleatoires en cours...")
Dim a.l(Boucle)
For j =1 To boucle : a (j)=Random(boucle)+32000 : Next
Printn ("")
PrintN ("Tableau constitue, Tri en cours...")
nbr = boucle
pa = nbr
DEB = ElapsedMilliseconds()
While pa >= 1
pa = Int(pa/2)
For j = 1 To nbr - pa
i = j
While i >= 1
If a (i) > a(i+pa)
Tmp =a (i)
a(i)=a(i+pa)
a(i+pa)=Tmp
i = i-pa
Else
i = 0
EndIf
Wend
Next
Wend
FIN = ElapsedMilliseconds()
Printn ("")
PrintN ("Termine : "+Str(FIN-DEB))
Input()
CloseConsole()
End
on s'est croisé nico, poste donc le code que tu as utilisé que je vois ca ?nico a écrit :Jusqu'a maintenant, je n'avais pas fait les tests pour Blitz pour la comparaison car le code posté au début n'était pas bon.
Je pose la question: qui affirme que Blitz est plus rapide?
Mes résultats montrent le contraire.
comparaison:
Blitzbasic
Calcul sur les nombre entiers :
Addition 174
soustraction 263
multiplication 153
division 1364
Calcul sur les nombre reels :
Addition 337
soustraction 354
multiplication 394
division 501
Pure basic
Calcul sur les nombre entiers :
Addition 170
soustraction 231
multiplication 190
division 1322
Calcul sur les nombre reels :
Addition 130
soustraction 150
multiplication 131
division 430
Ibasic Pro
Calcul sur les nombre entiers :
Addition 300
soustraction 271
multiplication 340
division 1653
Calcul sur les nombre reels :
Addition 801
soustraction 721
multiplication 731
division 1402