Page 1 sur 2
timer
Publié : jeu. 26/févr./2004 12:54
par Fiwip
Bonjour,
Je viens de télécharger la version d'essai et je cherche à faire une petite évaluation du type classique:
x = 1
y = 1.000001
y = Timer
For i = 1 To 100000000
x = x * y
Next
y = Timer - y
Quelle est l'équivalent de la fn Timer ds PB ?
Merci d'avance,
Fiwip
Publié : jeu. 26/févr./2004 13:12
par Anonyme2
Salut,
je ne comprend pas (

)
puis ensuite
Timer est une variable qui vaut 0 puisqu'en PB, toute variable est initialisée à 0.
Donc y vaut 0 et comme
donc x vaudra toujours 0 puisque Y vaut 0
Tu cherche à faire quoi exactement ?
Publié : jeu. 26/févr./2004 13:16
par filperj
Quelle est l'équivalent de la fn Timer ds PB ?
Bah... Euh... J'ai bien peur qu'y en ai pas...
Je ne connais que gettickcount_(), mais c'est une API et tu ne peus pas utiliser les Api avec la version démo.
Sinon, tu peux rajouter plein de choses dans ta boucle et utiliser Date() pour une évaluation en secondes, mais bon...
En plus, avec la démo le débogueur est obligatoirement actif, ce qui ralenti le programme.
Publié : jeu. 26/févr./2004 13:20
par filperj
Tu cherche à faire quoi exactement ?
Il cherche une commande pour chronométrer en millisecondes.
Publié : jeu. 26/févr./2004 13:44
par Fiwip
C'est exact que je cherche à faire une éval en mls. La présentation ds mon mail est simplement pour donner la structure de l'eval en mls d'une variable en décimal.
Tout ça pcq PowerBasic affiche une performance de 0.84 sec pour la même boucle. Ce qui me paraît peu.
Je viens de tester sur Blitz3D = entre 11 et 14 secs !
Je vais essayer sur PB avec la fonction Date()
Si vous avez 2 secs (!) pouvez-vous tester cette boucle avec votre version enregistrée et me communiquer les résultats ?
Cette limitation à l'appelle des api est très pénible car pour bien des exemples fournis cela ne fonctionne pas pour cette raison ! Ce qui est un peu paradoxal.
Par ailleurs, je n'arrive pas à faire fonctionner l'add-on "Editor" (PureBasic IDE). J'ai ouvert le fichier Purebasic Ide.pbb, qd je compile/run, une boite win me dit qu'il y a un pblm avec common.pbb !
Pas très simple tout ça !
Merci,
Fiwip
Publié : jeu. 26/févr./2004 13:53
par Fiwip
Je viens de tester avec cettee structure:
Debug FormatDate("%hh:%ii:%ss", Date())
For i = 1 To 100000000
x = x * y
Next
Debug FormatDate("%hh:%ii:%ss", Date())
Ce qui me donne entre 8 et 9 secs. Cela me parait bcp.
A vous, merci
Fiwip
Publié : jeu. 26/févr./2004 14:09
par filperj
Avec débug 3-4 secs, sans debug ~1/2 sec...
Mais avec plusieurs tâches en arrière-plan, sur ma config qui n'est probablement pas la même que chez toi... Je crois pas que ça avance à grand-chose.
Pour bien tester les langages, tu devrais plutôt t'amuser à faire des petits progs qui font quelquechose. Je sais pas si ce genre de boucles est très représentatif.
Publié : jeu. 26/févr./2004 14:26
par Fiwip
Well 1 à 2 secs c'est plus proche de ce "fameux" PowerBasic qui me semble d'ailleurs hors de prix.
Je suis tt à fait d'accord, cette boucle ne représente pas gd chose à elle seule. C'était simplement un ex donné sur la page de PowerBasic.
Néanmoins il est très difficile de comparer sur des versions d'essais en raison notamment de leurs limitations qui pour chacune sont différentes.
En atteste, cette toute simple boucle qui pour être écrite correctement doit passer par une api chez PB (ce qu'il m'est impossible de faire avec la démo) ce qui n'est pas le cas chez Blitz, Ibasic ou PowerBasic.
Une dernière question si tu as encore du tps: par rapport aux autres déclinaisons du basic évoquées, PB fait-il un recours plus que la normale aux apis ? faut-il connaître parfaitement celles-ci pour pouvoir programmer sous PB par rapport aux autres ?
Merci en tout cas pour ton aide,
Fiwip
Publié : jeu. 26/févr./2004 14:42
par Anonyme2
Oui, c'est une limitation qui se comprend.
Mais essaye toujours d'appeler les fonctions des Dll avec callfunction ou CallfunctionFast, peut-être que ça marche avec la démo.
Sinon, sur le forum anglais ily a eu de nombreux posts et débats sur la vitesse et PB semble arriver le plus souvent en tête.
Publié : jeu. 26/févr./2004 14:50
par filperj
Une dernière question si tu as encore du tps: par rapport aux autres déclinaisons du basic évoquées, PB fait-il un recours plus que la normale aux apis ? faut-il connaître parfaitement celles-ci pour pouvoir programmer sous PB par rapport aux autres ?
Je suppose que ça dépend de ce que tu veux faire.
Pour une application qui doit beaucoup communiquer avec le système, dans une fenêtre hyper-personnalisée, il te faudra des api... Quoiqu'on trouve aussi beaucoup de userlib qui simplifient la tâche.
Pour un jeu plein écran ou dans une fenêtre classique, je pense qu'il y a déjà tout ce qu'il faut dans les commandes natives, à 2-3 exeptions près (comme ce fameux timer).
Publié : jeu. 26/févr./2004 16:04
par Dr. Dri
...
Publié : jeu. 26/févr./2004 16:14
par Dr. Dri
...
Publié : jeu. 26/févr./2004 16:15
par filperj
Mais comment tu fait pour que le thread vérifie qu'il s'est bien écoulé 1ms, ni + ni -

[ oups, on a posté en même temps, Docteur ]
Publié : jeu. 26/févr./2004 16:21
par Dr. Dri
...
Publié : jeu. 26/févr./2004 16:29
par filperj
Moi j'obtient ds les 1530 au debug
Delay doit pas être prévue pour travailler à la millisec près.