besoin aide VB6 et chronométrage

Le
vede
Bonjour à tous,

dans un petit programme en VB6 qui compte le
temps pendant nombre de clic de souris, je remarque
que le Timer de mon programme n'affiche pas la
même valeur qu'un vrai chrono

exemple, je compte le temps pour 100 clics de
souris, avec un Timer (et son intervalle=10, en
centiéme de secondes donc)

au bout de 100 clics, le Timer affiche un retard
sur le vrai chronoexemple: aprés 100 clics, le
timer affiche 3mn05s09' et le vrai chrono 2mn58s85'

ma question : comment améliorer cela, quelque
soit la machine (PC) et le nbr de processus déjà
lancés?

mes premiéres investigations m'ont amenées
à une "library" Thread.Priority que je n'ai pas
réussi à mettre en oeuvre avec VB6, puis j'ai
vu que d'autres utilisaient l'horloge de windows
comme base de temps des secondes (via 'time')

sinon existe-t-il déjà une "library" time permettant
de faire du chronométrage précisoù comment
faites-vous pour faire du chronométrage précis?

merci d'avance pour vos infos,
vede
:O]
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-marc
Le #19763651
vede wrote:
Bonjour à tous,



Hello,

sinon existe-t-il déjà une "library" time permettant
de faire du chronométrage précis...où comment
faites-vous pour faire du chronométrage précis?



La FAQ VB est faite pour toi :-)

Voici:

Comment chronométrer mon programme ?
Comment mesurer précisément le temps ?
http://faq.vb.free.fr/index.php?question6

et aussi :
Comment mesurer le temps d'exécution d'un code
ou comment réaliser un "benchmark" ?
http://faq.vb.free.fr/index.php?question8

Tu verras que ces 2 articles en plus de donner plusieurs
exemples complets te donnent aussi de nombreuses explications
ainsi que des liens vers d'autres références.

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
LE TROLL
Le #19765931
Bonjour,

En complément, tu indiques que tu mets 10, ben si tu mets 10, ce n'est
pas 10/100eme mais 10/1000eme, ah...

Sinon, selon le nombre d'accès à ton processeur et autres, par les
programmes, et notamment les résidents (il faut mettre le minimum de
résidents), ça prend une partie de temps incompressible, y compris les accès
mécaniques éventuels, et donc descendre en dessous de ce temps fait que le
Timer n'a pas le temps (c'est le cas de le dire, de mesurer correctement),
car il ne prend le temps que quand il a la main (même si c'est une tâche
prioritaire, ce que je ne sais pas), alors si le système lui refile la main
toutes les deux secondes, et que toi tu lui demandes par exemple d'afficher
chaque seconde, évidemment il aura du mal !

Par habitude, je dirais qu'en dessous de 100 ms, c'est quasiment vain
d'obtenir le temps réel, à mon sens il faut étalonner le Timer selon la
machine, ceci en le faisant par exemple tourner à vide et écrire dans une
liste le plus vite possible en le mettant à 1/10000eme, ensuite il suffit
d'aller lire les intervalles et de régler avec une petite marge le Timer en
conséquence, on ne peut descendre en dessous de façon fiable, évidemment
c'est relatif, si tu lances un programme ensuite, durant le travail du
Timer, ça risque de fausser le comptage du temps, et mettre un second Timer
pour étalonner le premier en permanence, je ne sais pas si ce n'est pas
contreproductif, à voir...
Ou peut être mieux, lire une tâche pour étalonner avec les API tu as la
lecture en 1/1000eme du temps écoulé depuis le lancement de la machine, et
ipso facto tu verra que dans la liste il est loin de t'afficher tous les
millièmes !

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"vede" news:
Bonjour à tous,

dans un petit programme en VB6 qui compte le
temps pendant nombre de clic de souris, je remarque
que le Timer de mon programme n'affiche pas la
même valeur qu'un vrai chrono...

exemple, je compte le temps pour 100 clics de
souris, avec un Timer (et son intervalle, en
centiéme de secondes donc)...

au bout de 100 clics, le Timer affiche un retard
sur le vrai chrono...exemple: aprés 100 clics, le
timer affiche 3mn05s09' et le vrai chrono 2mn58s85'

ma question : comment améliorer cela, quelque
soit la machine (PC) et le nbr de processus déjà
lancés?

mes premiéres investigations m'ont amenées
à une "library" Thread.Priority que je n'ai pas
réussi à mettre en oeuvre avec VB6, puis j'ai
vu que d'autres utilisaient l'horloge de windows
comme base de temps des secondes (via 'time')...

sinon existe-t-il déjà une "library" time permettant
de faire du chronométrage précis...où comment
faites-vous pour faire du chronométrage précis?

merci d'avance pour vos infos,
vede
:O]
Frédéric Van der Beken
Le #19766151
Du temps de win 98 (peut être encore d'actualité), l'horloge n'était lue que
18.4 fois par seconde soit 0.0556 s l'incrément minimum si on se contente
d'afficher l'heure. J'avais fouillé pour une appli qui devait partager le
temps sur plusieurs fenêtres, chacune gérant un terminal connecté.

--
================================================== Frédéric Van der Beken

VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}

Localisation/location: www.mappy.com/PlanPerso/vedex/0
===================================================
Frédéric Van der Beken
Le #19766141
donc un timer en dessous de 5/100e donnait toujours 5/100e minimum ... c'est
ce que j'avais constaté à l'époque (où j'étais plus jeune !)

--
================================================== Frédéric Van der Beken

VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}

Localisation/location: www.mappy.com/PlanPerso/vedex/0
===================================================
LE TROLL
Le #19766611
Bonjou,

Oui, c'est la cadence du quartz pour le processeur, mais je ne sais pas si
ça a changé, car désormais il y a parfois un nombre affolant de programmes
résidents, et si seulement 18 peuvent y aller par seconde, disons que ça
limite un temps de réponse raisonnable à 40 processus, or je ne suis ps
certain qu'il n'y en ait pas davantage parfois ?

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Frédéric Van der Beken" dans le message de news:
donc un timer en dessous de 5/100e donnait toujours 5/100e minimum ...
c'est ce que j'avais constaté à l'époque (où j'étais plus jeune !)

--
================================================== > Frédéric Van der Beken

VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}

Localisation/location: www.mappy.com/PlanPerso/vedex/0
================================================== >


vede
Le #19769181
On 16 juil, 11:34, "LE TROLL"
Bonjou,

Oui, c'est la cadence du quartz pour le processeur, mais je ne sais pas s i
ça a changé, car désormais il y a parfois un nombre affolant de pro grammes
résidents, et si seulement 18 peuvent y aller par seconde, disons que ça
limite un temps de réponse raisonnable à 40 processus, or je ne suis ps
certain qu'il n'y en ait pas davantage parfois ?

--
Cordialement ;o)
-
Logiciels, romans, contacts :http://irolog.free.fr
_______________________
.
.

"Frédéric Van der Beken" dans le message denews:

> donc un timer en dessous de 5/100e donnait toujours 5/100e minimum ...
> c'est ce que j'avais constaté à l'époque (où j'étais plus jeu ne !)

> --
> ======================= ========================= ===
> Frédéric Van der Beken

> VEDEX
> 8, rue de la Féculerie
> Z.I. les Cailloux
> 45150 JARGEAU
> FRANCE
> Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
> Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
> Sites/website:www.vedex.com www.pointeuse.fr www.pointeuses.net
>www.nadsoftware.com
> E-mail: {EnlevezMoiPourRepondre}

> Localisation/location:www.mappy.com/PlanPerso/vedex/0
> ======================= ========================= ===



Bonjour à tous,

et merci beaucoup pour toutes vos infos et précisions...
j'utilise finalement un appel à l'heure systéme "Time"
100 fois/secondes, qui detecte si une seconde systeme
s'est écoulée...

init:
dim oldtime
oldtime=Time

prog:
if oldtime<>Time then
seconde=seconde+1
end if

vede
;O]
Publicité
Poster une réponse
Anonyme