Page 2 sur 4

Publié : sam. 14/janv./2006 10:05
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 ;)

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

Publié : sam. 14/janv./2006 10:59
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.

Publié : sam. 14/janv./2006 11:21
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 ;)

Publié : sam. 14/janv./2006 11:34
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 ...

Publié : sam. 14/janv./2006 11:43
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.

Publié : sam. 14/janv./2006 13:27
par poshu
!_! Mais comment qu'on va faire sans callfunction et callfunctionfast? Ca sera remplacé par quoi?

Publié : sam. 14/janv./2006 13:34
par Chris
Bonne question, ça! 8O

On va les appeler comment, les fonctions ???
Va falloir les siffler pour qu'elles viennent ???

Publié : sam. 14/janv./2006 13:41
par lionel_om
C'est vrai ???
Et on va faire comment ? Moi j'utilise trop souvent ces méthodes là...

Publié : sam. 14/janv./2006 14:02
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:

Publié : sam. 14/janv./2006 14:05
par AWEAR
Quel est l'interêt de renommer les fonctions déjà existante, même si elles sont optimisées ou autre ?? :?

Publié : sam. 14/janv./2006 14:12
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 ;)

Publié : sam. 14/janv./2006 14:21
par Polo
http://forums.purebasic.com/english/vie ... llfunction

En fait il a dit "probably", il les laissera peut être pour la compatibilité.

Publié : sam. 14/janv./2006 14:26
par Chris
Ouais!! Bon!!
L'important, c'est qu'on puisse les appeler, après tout :lol:

On verra bien en temps utile.

Publié : dim. 15/janv./2006 10:06
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 ?

Publié : dim. 15/janv./2006 16:45
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 ;)