Différence de performances VB => PB ?

Programmation d'applications complexes
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Niffo a écrit :@Polo : mon programme fait plus de 8000 lignes
Ben alors revérifie bien tes 8000 lignes, je sais pas ce que c'est ces 8000 lignes, ça me paraît un peu énorme, c'est quoi au juste ??
Il faut savoir que chaques compilateur a ses propres manières d'optimiser, et donc que tu dois forcément (non, en fait, pas forcément :D) modifier un peu le code ;)
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: Différence de performances VB => PB ?

Message par gnozal »

Niffo a écrit :Il s'agit d'une boucle permettant de charger une scène OpenGL à partir de fichiers ".OBJ". En VB, cette boucle met 500 ms à s'exécuter alors qu'elle met 1600 ms en PB. Le code est exactement le même à la différence de syntaxe du langage près.
Il faut savoir que les fonctions d'accès aux fichiers sont lentes en Purebasic (j'espère que çà change avec la V4). C'est pourquoi j'utilise ma propre librairie PureFILE ou avant la librairie FASTFILE de Rings.
Si cette boucle lit des infos dans un grand nombre de fichiers, c'est peut-être l'explication de la 'lenteur' de Purebasic.
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

oui, gnozal a entièrement raison, Purebasic n'utilise pas la technique de buffering, ce uqi ralenti en général énormément les performances, Fred a dit que ça serait corrigé pour la V4, je crois ;)
Niffo
Messages : 108
Inscription : dim. 29/août/2004 15:51

Message par Niffo »

@Gnozal : Merci pour cette info, ça explique sans doute une bonne partie du ralentissement pour ma première boucle (chargement d'objets à partir de fichiers OBJ) qui est 3 X plus lente qu'en VB. Je vais essayer d'utiliser les APIs d'accès aux fichiers plutôt que les fonctions natives de PB (dommage pour le multi plate-forme :cry: )

Par contre, il me reste la question de ma deuxième boucle (celle dont j'ai donné le code) qui ne fait pas du tout d'accès aux fichiers. 15 FPS au lieu de 20 FPS, elle est donc 1,33 fois plus lente qu'en VB. J'ai l'impression que c'est le wraping vers l'API OpenGL qui est lent. Je vais essayer l'accès direct aux fonction de la DLL OpenGL (CallFunction, ...) pour voir ...
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Il n'y a pas de "wrapping" vers les fonctions openGL, à part pour celle qui nécessitent des doubles.
Et CallFunction est a éviter, utilise plutôt callfunctionfast, de toute façon, ces deux fonctions n'existeront plus avec pb4.
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

!_! Mais comment qu'on va faire sans callfunction et callfunctionfast? Ca sera remplacé par quoi?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Bonne question, ça! 8O

On va les appeler comment, les fonctions ???
Va falloir les siffler pour qu'elles viennent ???
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

C'est vrai ???
Et on va faire comment ? Moi j'utilise trop souvent ces méthodes là...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben déjà, on sait que nos codes actuels ne seront plus compatibles avec la v 4.0.

Autrement dit, il va falloir réapprendre pratiquement tout le langage pour pouvoir programmer, ou simplement faire un portage des anciens codes.

On va bien se marrer, je crois :lol:
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message par AWEAR »

Quel est l'interêt de renommer les fonctions déjà existante, même si elles sont optimisées ou autre ?? :?
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Chris a écrit :Bonne question, ça! 8O

On va les appeler comment, les fonctions ???
Va falloir les siffler pour qu'elles viennent ???
ça va être comme en C, il suffira de faire un truc du genre
MyFunction.f(variable1.l,....)=DLLFunction()

et après tu appelle MyFunction comme une fonction normale ;)
Pour la syntaxe, c'est pas ça, je ne la connais pas exactement, mais d'après Fred, ça ressemblera en gros à ça ;)
Ce qui sera plus rapide, bien sûr, que d'appeller CallFunction/Fast ;)
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

http://forums.purebasic.com/english/vie ... llfunction

En fait il a dit "probably", il les laissera peut être pour la compatibilité.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ouais!! Bon!!
L'important, c'est qu'on puisse les appeler, après tout :lol:

On verra bien en temps utile.
Niffo
Messages : 108
Inscription : dim. 29/août/2004 15:51

Message par Niffo »

@Tous :

Merci beaucoup pour vos réponses. En ce qui concerne la perte de compatibilité de certaines chose avec la V4, je suis complètement pour si ça sert l'intérêt de PureBasic. Ca ne me dérange pas du tout de revoir un petit peu mon code si ça peut permettre d'avoir des vrais appels de fonctions par pointeur ou des vraies déclarations de variables obligatoires, ou encore une vraie gestion de la portée des variables et des fonctions.

Est-ce que qqun sais si le "modèle objet" va être concerné par la version 4. Y a-t-il un endroit ou l'on peut voir une liste de ce qui est prévu pour cette version 4 ?
Dernière modification par Niffo le dim. 15/janv./2006 19:13, modifié 1 fois.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Niffo a écrit :Est-ce qqun sais si le "modèle objet" va être concerné par la version 4. Y a-t-il un endroit ou l'on peut voir une liste de ce qui est prévu pour cette version 4 ?
Si tu parles de COM, les interfaces sont là pour ça...

Dri ;)
Répondre