timer

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Fiwip
Messages : 5
Inscription : jeu. 26/févr./2004 12:49

timer

Message 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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Salut,

je ne comprend pas ( :oops: )

Code : Tout sélectionner

y = 1.000001
puis ensuite

Code : Tout sélectionner

 y = Timer
Timer est une variable qui vaut 0 puisqu'en PB, toute variable est initialisée à 0.

Donc y vaut 0 et comme

Code : Tout sélectionner

x = x * y 
donc x vaudra toujours 0 puisque Y vaut 0

Tu cherche à faire quoi exactement ?
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message 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.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Tu cherche à faire quoi exactement ?
Il cherche une commande pour chronométrer en millisecondes.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Fiwip
Messages : 5
Inscription : jeu. 26/févr./2004 12:49

Message 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
Fiwip
Messages : 5
Inscription : jeu. 26/févr./2004 12:49

Message 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
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message 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.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Fiwip
Messages : 5
Inscription : jeu. 26/févr./2004 12:49

Message 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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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.
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message 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).
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 8:31, modifié 1 fois.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 8:32, modifié 1 fois.
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Mais comment tu fait pour que le thread vérifie qu'il s'est bien écoulé 1ms, ni + ni - :roll:
[ oups, on a posté en même temps, Docteur ]
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 8:32, modifié 1 fois.
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Moi j'obtient ds les 1530 au debug 8O
Delay doit pas être prévue pour travailler à la millisec près.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Répondre