Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

besoin aide VB6 et chronométrage

6 réponses
Avatar
vede
Bonjour =E0 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=EAme valeur qu'un vrai chrono...

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

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

ma question : comment am=E9liorer cela, quelque
soit la machine (PC) et le nbr de processus d=E9j=E0
lanc=E9s?

mes premi=E9res investigations m'ont amen=E9es
=E0 une "library" Thread.Priority que je n'ai pas
r=E9ussi =E0 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=E9j=E0 une "library" time permettant
de faire du chronom=E9trage pr=E9cis...o=F9 comment
faites-vous pour faire du chronom=E9trage pr=E9cis?

merci d'avance pour vos infos,
vede
:O]

6 réponses

Avatar
Jean-marc
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_' ;
Avatar
LE TROLL
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" a écrit dans le message de
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]
Avatar
Frédéric Van der Beken
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
===================================================
Avatar
Frédéric Van der Beken
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
===================================================
Avatar
LE TROLL
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" <{EnlevezMoiPourRepondre} a écrit
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
================================================== >


Avatar
vede
On 16 juil, 11:34, "LE TROLL" <le wrote:
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" <{EnlevezMoiPourRepondre} a écrit
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]