PURE BASIC - Le Topic officiel

Page 7 sur 11 Précédent  1, 2, 3 ... 6, 7, 8, 9, 10, 11  Suivant

Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Jeu 10 Oct 2019 - 23:01

C'est pas de la 3D (c'est du raycasting). Donc oui, je pense que c'est basé sur une lib 2D classique genre SDL...

Tryphon
Docteur *
Docteur *

Nombre de messages : 19112
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Jeu 10 Oct 2019 - 23:12

sinon je suis desormais bien autonome sur Pure... j'ai reconstitué mon moteur procedural, j'ai mis au point le drag & drop... COSMOS II ca va devenir un vrai projet !

mon seul réel blocage/énervement aura été ces fameuses fontes (pure devrait proposer quand meme une option qui évite d'etre confronté à ce probleme, je ne l'ai jamais rencontré avec d'autres basic, et j'en ai essayé des dizaines). J'aurai un pc qui merde... bon... mais il ne merde pas en 125% avec les autres basic... donc y a quand meme un petit quelque chose je pense

je n'ai pas encore examiner le son, la sauvegarde, mais ca ne devrait pas etre un probleme

Merci à nouveau au Prof Dobro qui a facilité mon adaptation et m'a permi de gagner du temps

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Jeu 10 Oct 2019 - 23:21

@Tryphon a écrit:C'est pas de la 3D (c'est du raycasting). Donc oui, je pense que c'est basé sur une lib 2D classique genre SDL...

bon, ok

De toute façon mon choix définitif est fait : je code desormais en Pure, malgré ses défauts et le Prof Dobro me fait vibrer quand il balance que c'est du bas niveau Mr. Green proche de l'assembleur  Mr. Green  PURE BASIC - Le Topic officiel - Page 7 435303

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro le Ven 11 Oct 2019 - 10:10

en cas de besoin vraiment Technique , je te conseille le Forum "Anglais"
de Purebasic
ici :  FORUM ANGLAIS 

, le Forum Français, n'est plus que l'ombre de lui -meme
il reste quelques bon codeurs, mais on les comptes sur les doigts d'une main...

par contre, je te l'ecris ici, car c'est pas toujours bien compris lorsqu'on arrive sur ces forums
on partage du code pour expliquer un probleme ...

on partage une routine, pour que les autres puissent la tester et éventuellement trouver le problème soulevé ..
ou trouver une solution de contournement

au mieux on essai de faire un petit prg de quelques lignes, qui font ressortir le bug..
(si on ne tiens pas a partager son code original )

les forums Français (mais surtout anglais) sont tres réactif
tu poses une question , tu aura probablement une réponse dans les minutes qui suivent ..   Very Happy

bienvenu dans la liste des utilisateurs de ce bel outils ...


ps pour chronometrer une fonction ou une routine la fonction ELAPSEDMILLISECONDS() sert a ça ...

exemple



Depart_temp=ElapsedMilliseconds()
seed=RandomSeed(1) ; on utilise un Seed precis
For i= 1 to 30000
        a$=a$+str(random(100,1))+" " ; on tire un chiffre aleatoire tiré de la liste Seed  1
Next i
; sortira toujours les chiffres  73,19,61
temp_passe=ElapsedMilliseconds()-Depart_temp
MessageRequester ("info", "La routine a mis "+strf(temp_passe/1000,2)+" milliseconds pour s'executer")


ici donc  30.000 affectation de valeur aléatoire (entre1 et 100 )  dans une variable CHAINE(c'est ce qui est le plus lent )

a lancer sans le Debugger ON bien sur, puisque celui-ci ralenti le tout ...
c'est pour ça que j'utilise Messagerequester() pour afficher le resultat
puisque Debug, ne fonctionnera pas .... :)

chez moi ça met : 4.77 secondes ...  sans le debugger
et 4.84 avec le debugger actif

a Propos de l'assembleur , je cite la doc :
- Les bibliothèques externes sont également toutes écrites en langage assembleur optimisé pour plus de rapidité et de compacité
- Les API's de Windows (Linux et OSX) sont supportées et considérées comme des mots-clé du BASIC
- Langage assembleur intégré permettant d'insérer toute commande ou routine assembleur dans le corps du programme Basic

ps: on peut facilement (avec un Flag de compilation ) obtenir la version assembleur de notre Programme Very Happy 
bon perso... je suis une bille en assembleur ... mais sur le Forum Anglais, ils y a des gouroux de l'assembleur sous windows et Linux ..
il y a meme une rubrique reservé au codeurs Assembleurs Purebasic ici
http://forums.purebasic.com/english/viewforum.php?f=35&sid=906dc19d1a4f1c691492811175b52694

sur le Forum Français il y a eu quelques codeur Assembleur, qui maintenant ne viennent plus sur le forum
c'est ici que ça se passe
https://www.purebasic.fr/french/viewforum.php?f=12

des tutos ont ete ecrits en Français , donc c'est a lire :)


concernant les fontes, le probleme a surtout lieu lorsqu'on les utilises sur une surface DirectX
pour l'utilisation des fontes sur Gadget (widget... bouton, champ de saisie, editeur,label etc..)  l'option Enable DPI aware doit etre coché...
et utiliser les fonctions 
DesktopScaledX()
DesktopScaledY()

pour ce qui concerne les Fontes encore ... 

quelques membre ont aussi cree des moteurs 2D /3D
ce sont souvent une collection de Procedures, qui permet d'etre dans le context d'un moteur de jeux ...
je pense a  "MP3d Engine" par exemple  (3d/2d)


apres il faut voir sur le forum anglais, ou tout ça en est .....  
une recherche avec le terme "Engine" devrai renvoyer pas mal de reponses....

je sais par exemple qu'un membre avait fait en sorte qu'on puisse utiliser le moteur 3d du dark Basic
avec Purebasic .. , des trucs de ce genre, on en a eu pas mal :)
Tmyke qui avait fait un moteur 3d de toute piece ...(que j'ai longtemps utilisé pour mon PureGolo 3D )

bref... c'est un nouveau monde qui s'ouvre a toi , et des nuits blanches en perspective LOL


Dernière édition par Dobro le Ven 11 Oct 2019 - 14:51, édité 1 fois
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 55
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro le Ven 11 Oct 2019 - 12:28

Ps: Pardon encore moi ...

a propos du code Fonte Graphique que je t'ai poster l'autre jour, j'ai réediter celui ci
qui ne me convenais pas , j'utilisais un sprite, mais en plus je l'utilisais mal

là, j'utilise une image , et bien mieux, donc le resultat est bien plus propre au final

Code:

Enumeration
      #font
      #win
      #bouton
      #sprite1
      #numero_ligne
EndEnumeration
Declare CreateLineText(win,num,txt.s,coul)
Declare  WriteLineText(num,x,y)

If InitSprite() = 0
      MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
      End
EndIf
If LoadFont(#font,"Comic sans Ms",30,#BOLD_FONTTYPE)
Else
      MessageRequester("erreur" ,"fonte pas chargée")
EndIf

If OpenWindow(#win, 0, 0, 320, 200, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered| #PB_Window_SizeGadget )
      rez_x=WindowWidth(#win)-5 ; on recup la resolution de la fenetre
      rez_y=WindowHeight(#win)-5
      redimenssionnement_auto=#True
      If OpenWindowedScreen(WindowID(#win), 0, 0, rez_x, rez_y,redimenssionnement_auto,1,1,1)
            ; ******************* creation d'un ligne de text ********************
            CreateLineText(#win,#numero_ligne,"Purebasic Power",rgb(255,255,0))   
            ; ***************************************************************
            ; ************* Le sprite carré qui bouge ****************************
            CreateSprite(#sprite1, 20, 20)
            If StartDrawing(SpriteOutput(#sprite1))
                  Box(0, 0, 20, 20, RGB(255, 0, 155))
                  Box(5, 5, 10, 10, RGB(155, 0, 255))
                  StopDrawing() ;>
            EndIf;|
            Else
                  MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
            End ;|
            EndIf
      Endif
      ; ***********************************************************************
      directionx = 2 :directiony=2
      Repeat ; boucle Event
            Event = WaitWindowEvent(2)
            Select Event
                  Case #PB_Event_SizeWindow ; en cas de redimenssionnement de la fenetre      
                  
                  Case #PB_Event_CloseWindow
                        End
            EndSelect
            ; ******************* Affiche la ligne de text ************************
            StartDrawing(ScreenOutput())
                  WriteLineText(#numero_ligne,5,50) ; affiche la ligne de text
            StopDrawing()
            ; *****************************************************************
         
            x + directionx
            y + directiony
            
            If x >= (screenWidth()-20) : directionx = -2 : EndIf
            IF y>= (screenHeight() -20) :Directiony = -2 :Endif
            If x <= 0  : directionx = -directionx : EndIf
            If y <= 0:directiony = -directiony :Endif
               DisplaySprite(#Sprite1, x, y) ;affiche le sprite carré
            FlipBuffers()
            ClearScreen(rgb(255,255,255))
      ForEver
      
      ; ********************* Zone des Procedures *************************
      Procedure CreateLineText(win,num,txt.s,coul)         
            ;By Dobro            
            if Isimage(num)
                  FreeImage(num)
            Endif
            ; on dessine dans l'ecran la phrase a ecrire
            ; le but est de recuperer sa taille en pixel
            StartDrawing(ScreenOutput())
                  DrawingFont(Fontid(#font))
                  larg_text=TextWidth(txt.s)
                  haut_text=TextHeight(txt.s)
            StopDrawing()
            ; on a la taille en pixel , on creer l'image pour correspondre a la phrase
            CreateImage(num,larg_text,haut_text)
            
            ; maintenant on peut ecrire le text dans l'image qui viens d'etre adapté en taille
            StartDrawing(imageOutput(num))            
            DrawingFont(Fontid(#font))
                  DrawText( 1,1,txt.s,coul)
            StopDrawing()         
      EndProcedure
      Procedure WriteLineText(num,x,y)      
            ;By Dobro
            DrawImage(imageID(num),x,y)            ; on dessine simplement notre image, qui contient notre text
      EndProcedure
      
      
; Epb

avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 55
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Ven 11 Oct 2019 - 18:35

Merci Prof Dobro.

je vais désormais solliciter moins d'aide, je pense maitriser 95% des commandes dont j'ai besoin pour mon jeu. 

Mais je compte bien à que ce topic reste actif, c'est passionnant.

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Ven 11 Oct 2019 - 22:25

@Dobro a écrit:
ps pour chronometrer une fonction ou une routine la fonction ELAPSEDMILLISECONDS() sert a ça ...

exemple



Depart_temp=ElapsedMilliseconds()
seed=RandomSeed(1) ; on utilise un Seed precis
For i= 1 to 30000
        a$=a$+str(random(100,1))+" " ; on tire un chiffre aleatoire tiré de la liste Seed  1
Next i
; sortira toujours les chiffres  73,19,61
temp_passe=ElapsedMilliseconds()-Depart_temp
MessageRequester ("info", "La routine a mis "+strf(temp_passe/1000,2)+" milliseconds pour s'executer")


ici donc  30.000 affectation de valeur aléatoire (entre1 et 100 )  dans une variable CHAINE(c'est ce qui est le plus lent )

a lancer sans le Debugger ON bien sur, puisque celui-ci ralenti le tout ...
c'est pour ça que j'utilise Messagerequester() pour afficher le resultat
puisque Debug, ne fonctionnera pas .... :)

chez moi ça met : 4.77 secondes ...  sans le debugger
et 4.84 avec le debugger actif

4 secondes, ca me semblait tres tres tres lent... du coup j'ai essayé

heu.... je l'ai fait sur mon pc portacle super bas de gamme : 8 secondes... contre 4 chez toi, donc logique.. et donc tres tres lent

et... heu... comment dire... quand je fais ma meme chose en Blitz, ca le fait en.... 0,2 secondes !!!!!!!!!!

heuuuuuu Professeur Dobro !!!?????

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Ven 11 Oct 2019 - 22:44

Faut dire que c'est une très mauvaise façon de faire.

Il vaudrait mieux créer une chaîne de 30000 caractères et modifier l'élément numéro i...
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Ven 11 Oct 2019 - 22:44

j'y crois pas, j'enchaine les tests de boucles... et tous mes autres basics (NAALAA, RCBASIC, BLITZ) eclatent toalement PURE BASIC !!!!

alors là.....

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Ven 11 Oct 2019 - 23:25

bon en calcul en boucles BLITZ defonce TOTALEMENT Pure, j'y crois pas... je m'attendais à l'inverse... quand je dis défonce c'est défonce, jusque parfois 20x plus rapide....idem en Naalaa ou en RC Basic, Pure se fait totalement défoncer

Y a qu'en affichage que Pure s'en sort correctement....

5 sec en Pure pour afficher 1 millions de points (sur mon celecon de base)
8 sec en Blitz

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Ven 11 Oct 2019 - 23:29

Tu peux poster tes boucles ?
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Ven 11 Oct 2019 - 23:47

j'ai testé des tas de trucs hyper con

genre
for i=1 to 10000000
i=i*3.14/123
next

un truc comme ça BLITZ le fait 10x plus vite que Pure.... c'est vraiment surprenant la !!!!

Pure serait un mensonge ? Un scandale international ? Ou quelque chose m'echappe dans la matrice ?

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Urbinou le Sam 12 Oct 2019 - 0:06

Ce doit être l’effet bas niveau, juste au dessus de l’asm PURE BASIC - Le Topic officiel - Page 7 435303
Urbinou
Urbinou
Docteur *
Docteur *

Masculin Nombre de messages : 10824
Age : 51
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Sam 12 Oct 2019 - 0:19

Bas niveau dans le vrai sens du terme là  Mr. Green

le test du Prof Dobro met 8 secondes en Pure sur mon Celeron, et 0,2 secondes en BLITZ... 40x plus rapide !!!!!

Et ca se confirme sur d'autres tests... rien que faire compter l'ordi de 1 à 100 millions, c'est hyper speed en BLITZ et d'une lenteur affligeante en Pure. On se croirait en Python !

JJ'ai trop hate de comprendre et d'entendre le Prof sur ce sujet !

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Urbinou le Sam 12 Oct 2019 - 0:26

Ta boucle a 100 millions fait quelque chose ? Parce que certains compilateurs sauteront cette boucle si elle ne fait rien, ou pour optimiser, feront certaines à l’envers si ça ne porte pas à conséquence.
Urbinou
Urbinou
Docteur *
Docteur *

Masculin Nombre de messages : 10824
Age : 51
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Sam 12 Oct 2019 - 8:10

dans les boucles je balance un mini calcul à chaque fois, et quelque soit ce calcul, les vieux basic pourris comme Blitz le font 10x, 20x plus vite que Pure... Pure est décrit partout comme le basic le plus rapide du monde.... Hu ?

En affichage de points par contre il se rattrappe... Sur 1 millions de PLOT Pure est 30% plus rapide cette fois..... faudrait que je teste maintenant l'affichage de 1 millions d'images transparentes.

On attends une réaction du Professeur Dobro.

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par basiclove le Sam 12 Oct 2019 - 8:54

@drfloyd a écrit:j'ai testé des tas de trucs hyper con

genre
for i=1 to 10000000
i=i*3.14/123
next

un truc comme ça BLITZ le fait 10x plus vite que Pure.... c'est vraiment surprenant la !!!!

Pure serait un mensonge ? Un scandale international ? Ou quelque chose m'echappe dans la matrice ?

Hello, dans cet exemple il y a une erreur.
Tu utilises i à la fois comme compteur de boucle et dans ton calcul.
Essaie plutôt quelque chose comme:

x.f = 1
For i = 1 To 10000000
  x.f = x.f * 3.14/123
Next i


Ca devrait déjà aller un peu plus vite Wink

Pour les autres tests attendons Dobro.
basiclove
basiclove
Visiteur de l'hôpital

Masculin Nombre de messages : 6
Age : 34
Localisation : XL
Date d'inscription : 12/10/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Sam 12 Oct 2019 - 9:22

@drfloyd a écrit:j'ai testé des tas de trucs hyper con

genre
for i=1 to 10000000
i=i*3.14/123
next

Ce calcul est sale parce que i est forcé d'être un entier car c'est un compteur de boucle, et un flottant car tu le multiplie par un flottant. Résultat : à chaque étape dans la boucle, il y a une conversion entier -> flottant (qui est lente).

@Urbinou a écrit:Ta boucle a 100 millions fait quelque chose ? Parce que certains compilateurs sauteront cette boucle si elle ne fait rien, ou pour optimiser, feront certaines à l’envers si ça ne porte pas à conséquence.

@drfloyd a écrit:dans les boucles je balance un mini calcul à chaque fois, et quelque soit ce calcul, les vieux basic pourris comme Blitz le font 10x, 20x plus vite que Pure...

Si tu n'affiches pas le résultat du calcul à la fin, le compilateur peut décider que ce calcul est inutile et ne pas le compiler. Rajoute un print i, en Pure et en Blitz.


Dernière édition par Tryphon le Sam 12 Oct 2019 - 9:27, édité 1 fois
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Sam 12 Oct 2019 - 9:25

Basiclove, que veux tu que ca change... Blitz va aussi aller plus vite.... je je fait quand meme :

PURE BASIC : environ 1,5 secondes

BLITZ : quasi instantané !

Que le code soit propre ou sale, le vieux Blitz défonce Pure (et tous les autres basic qui j'utilise aussi)

je suis sous le choc


Dernière édition par drfloyd le Sam 12 Oct 2019 - 9:27, édité 1 fois

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Sam 12 Oct 2019 - 9:26

Tu fais exprès d'ignorer mes posts ?
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Sam 12 Oct 2019 - 9:27

@Tryphon a écrit:Tu fais exprès d'ignorer mes posts ?

non pas du tout, je répondais à basiclove....  Mr. Green

Je ferai d'autres tests avec PRINT, là j'ai une course à faire

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Sam 12 Oct 2019 - 9:34

Rajoute le après la boucle hein, sinon t'en verras jamais la fin, que ce soit en Pure ou en Blitz Razz
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro le Sam 12 Oct 2019 - 9:35

Very Happy

ce qui a été dit plus haut a propos du melange Flottant entier
est tres juste !!  

j'ai utilisé ton test  sous cette forme :

Code:



Depart_temp=ElapsedMilliseconds()

; ************* test ************************

for i=1 to 10000000
a.f=a.f *3.14/123
next i

; ******************************************

temp_passe=ElapsedMilliseconds()-Depart_temp
MessageRequester ("info", "La routine a mis "+strf(temp_passe/1000,2)+" milliseconds pour s'executer")


l'utilisation de ElapsedMilliseconds est une mesure exacte , "pas une impression"

voici ce que j'obtiens AVEC LE DEBBUGER ON (ce qui est plus lent )
PURE BASIC - Le Topic officiel - Page 7 Nouvea10

et voici ce que j'obtiens sans le debugger actif
PURE BASIC - Le Topic officiel - Page 7 Nouvea12


voila voila  :)  

maintenant, il n'est pas exclu que la version de demo soit plus lente
franchement, j'en sais rien :)


ps: lorsque tu parles de mon test a propos de la boucle avec affectation d'une variable Chaine
j'aimerai bien que tu donnes le listing que tu utilises en Blitz ....
parceque comme d'habitude, je ne peut juger QUE d'apres un listing .... Wink

par exemple, par l'utilisation de pointeur, on peut allez plus vite ...
je veux dire que mon exemple, est un exemple de base, pas prévu pour battre un records ...
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 55
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro le Sam 12 Oct 2019 - 10:00

en meme temps
j'aimerai bien que tu m'affiches le resultat finale de ton calcul intelligent :lol:

a la fin  ,combiens donne la variable  a.f   MDR MDR


en Purebasic, si tu modifie la variable de la boucle, ça change le fonctionnement de celle-ci (bon.....,  faut le savoir )

exemple ceci  
for i=1 to 10
i=i+2
debug i
next i

la variable i sera egale a  "3  6  9 12"    et pas  "1 2 3 4 5 ...."
parceque le I de  i=i+2 ben c'est le I du For-Next

ça evite l'emploi de "Step"  Wink


Dernière édition par Dobro le Sam 12 Oct 2019 - 10:45, édité 4 fois
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 55
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Sam 12 Oct 2019 - 10:04

0 normalement...
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro le Sam 12 Oct 2019 - 10:05

oui !! Very Happy

et donc , si on veux asservir notre calcul a la boucle
il suffirai de faire ceci par exemple

Code:


Depart_temp=ElapsedMilliseconds()

; ************* test ************************
x.d = 1
For i = 1 To 10000000
  x.d = x.d * 3.14/123 +i
Next i

; ******************************************

temp_passe=ElapsedMilliseconds()-Depart_temp
debug x.d
MessageRequester ("info", "La routine a mis "+strf(temp_passe/1000,2)+" milliseconds pour s'executer")

là ça renvoi le resultat d'un calcul "intelligent" valide :)

ps: le resultat du chrono est quasi identique (0.12 millisecondes chez moi )
ça me renvoi la valeur "10261972,274134329"

tu notera l'emploi du typage *.d  (flottant double precision 64 bits...si compilé en 64bits)


Blitz est un tres bon langage de toute façons .. Very Happy
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 55
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro le Sam 12 Oct 2019 - 10:50

a propos des fontes sur Windows .....

depuis la derniere Mise a jour windows 10 (09/10/2019)
j'ai des application qui ont des fontes floues... et d'autres pas du tout

j'ai trouvé comment on pouvais corriger les problemes lié au flou des fontes
mais aussi cela peut corriger le probleme de zoom comme celui que rencontre le Docteur ....

voici ce qu'il faut faire sur un programme qui semble deconner (fonte flou ou et fontes zoomé )

vous cliquer sur votre programme pour acceder aux parametres de celui ci par le menu contextuel

vous allez dans Proprieté puis "compatibilité"

puis "modifier les parametres PPP elevés"

cocher la premiere case en spécifiant "j'ouvre ce programme" (ça va activer la correction a chaque lancement du programme )

cocher la deuxieme petite case en bas en spécifiant "application"

chez moi ça me remet les fontes Net !! :)
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 55
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Sam 12 Oct 2019 - 10:58

Bon à savoir, moi aussi j'ai des fontes floues sous win10
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Sam 12 Oct 2019 - 14:22

Prof Dobro, j'ai adapté ton test en Blitz :

Code:
Depart_temp=MilliSecs()

; ************* test ************************
x# = 1
For i = 1 To 10000000
  x = x * 3.14/123 +i
Next

; ******************************************

temp_passe=MilliSecs()-Depart_temp
Print temp_passe

resultat : 182 millisecondes... contre 2 millisecondes en Pure !!!!  What a Face What a Face What a Face 90x plus rapide en Pure ?????


Dernière édition par drfloyd le Sam 12 Oct 2019 - 14:32, édité 1 fois

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd le Sam 12 Oct 2019 - 14:28

par contre test précedent :

Code:
Depart_temp=MilliSecs()

; ************* test ************************
For i= 1 To 30000
        a$=a$+Str(Rand(1,100))+" " ; on tire un chiffre aleatoire tiré de la liste Seed  1
Next


; ******************************************

temp_passe=MilliSecs()-Depart_temp
Print temp_passe

250 millisecondes en Blitz contre 8 secondes en Pure (4 sec chez toi) 32x plus rapide en Blitz, pourquoi ?

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 7 Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 150658
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon le Sam 12 Oct 2019 - 14:42

T'as rajouté le print a$ à la fin ?
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 19112
Age : 42
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 7 Empty Re: PURE BASIC - Le Topic officiel

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 7 sur 11 Précédent  1, 2, 3 ... 6, 7, 8, 9, 10, 11  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum