Myriad Forum « Dialog.Select(parm): Idle time »
 Welcome, Guest.
 You can read all messages, but to be able to post,
 please Login or Register.
Mar 7th, 2021, 7:08am 
   Myriad Forum
   MyrScript Language
(Moderator: Forum Administrator)
   Dialog.Select(parm): Idle time
« Previous topic | Next topic »
Pages: 1  Reply | Notify of replies | Print
   Author  Topic: Dialog.Select(parm): Idle time  (Read 249 times)
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Dialog.Select(parm): Idle time  
« on: Nov 21st, 2020, 12:58pm »
Quote | Modify

Le "parm" du sujet est censé indiquer le temps d'attente entre deux actions de vérification si quelque chose a été fait à l'écran.  
C'est annoncé en 60èmes de seconde, avec un défaut de 5.
Dans un script en cours de développement, j'affiche en permanence le nombre d'appels, et on dirait bien que ce paramètre soit inefficient.  
 
En première analyse, ce serait une valeur permanente d'un centième de seconde...  
 
D'autres ont-ils rencontré cela? Même chose en 981 et 993 alpha.  
 
Merci
« Last Edit: Nov 21st, 2020, 1:10pm by Andre_B » offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
Daniel Frouvelle
Board Master
*****






   
WWW | Email

Gender: male
Posts: 1481
Re: Dialog.Select(parm): Idle time  
« Reply #1 on: Nov 21st, 2020, 2:24pm »
Quote | Modify

Bonjour André, je te fais part de ce constat si ça peut donner de l'eau à ton moulin....
ça m'est arrivé de chercher à savoir le nombre d'appels par seconde d'une fonction Idle dans un script. J'ai procédé comme suit :
 
function Init(dialog)
 year,month,day,hour,minute,second0=Application.GetCurrentDate()
 second=second0
 compte=0
end
--------------------------------------
function Idle(dialog)
 compte=compte+1
 year,month,day,hour,minute,second=Application.GetCurrentDate()
 if second~=second0 then  
  print(second,compte)  
   second0=second
   compte=0
 end
end
---------------------------------------

A chaque seconde écoulée je vois combien de fois Idle a été appelée.
Je me rends compte que le nombre d'appels est variable, d'autant plus faible si on est en mode débogage.
Je n'ai pas le même nombre si je suis sur mon ordinateur de bureau ou mon ordinateur portable, ça dépend peut être de la rapidité de mon matériel.
En tous les cas je suis loin du 60e et à fortiori du 100e de seconde...
 
Amistats, Danièl.
offline
bubu42
Board Master
*****





   


Gender: male
Posts: 9966
Re: Dialog.Select(parm): Idle time  
« Reply #2 on: Nov 21st, 2020, 5:26pm »
Quote | Modify

En mode débogage, il doit y avoir une priorité à l'application par rapport au script lui-même et donc la fonction Idle. La rapidité du processeur doit certainement entrer en ligne de compte.  
Par ailleurs, le fait d'appeler une fonction Print à l'intérieur du Idle doit certainement ralentir le processus d'ensemble et donc le nombre d'appels par seconde, car le Print consomme pas mal de temps machine à lui tout seul.
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Re: Dialog.Select(parm): Idle time  
« Reply #3 on: Nov 22nd, 2020, 8:56am »
Quote | Modify

Je comprends bien l'intention de ce calibrage...  
Dans une méthode "Idle", il y une fréquence d'appel qui va éviter de mobiliser trop de ressources systèmes. Je n'ai pas vu de moyen de calibrer cette fréquence.  
 
Car il peut y avoir des situations, des objectifs où la précision de l'action est prioritaire par rapport aux autres applications en concurrence.  
 
Dans le cas d'un NewDialog, c'est en principe la même chose, mais la méthode est différente. Il n'y a pas de "méthodes", le code est plus rectiligne. C'est le "Dialog.Select()" qui va introduire le calibrage, en mettant un délai.  
 
Je ne sais pas si, avec un délai d'une seconde, par exemple, un appel à ce qui suit le Select devra attendre une seconde après l'appel précédent (quitte à être immédiat ou en retard si le traitement de l'appel précédent la dépasse), ou si une pause d'une seconde intervient après ce traitement précédent.  
 
Mais peu importe, ce délai n'a pas pour objectif de créer une horloge. Simplement de "laisser souffler" et éventuellement de limiter le volume d'une trace.  
 
Un délai de 0 supprime ce délai, et dans un cas de mesure avec un traitement minimal (et sur mon ordinateur) va provoquer quelque cent fois plus d'appels que le délai standard.  
 
Dans un premier temps, et comme indiqué dans l'ouverture de ce fil, je voyais une  fréquence d'appel relativement stable, sans rapport avec le paramètre de délai.  
 
Le script s'élaborant, en particulier le traitement après Select,    
j'observe à nouveau un lien entre fréquence et délai.  
 
Il doit donc y avoir quelque chose qui change en cours de route, donc la situation d'un traitement minimal, toute théorique, perd de son importance.  
 
Je découvre par contre une anomalie dans la mise en place de mesures en série, ce qui n'est pas essentiel non plus.  
 
Pour l'instant, je poursuis l'élaboration de mon script. A l'occasion, ou pour me changer les idées, je reprendrai mes essais et mesures systèmatiques, et ne manquerai pas de donner des nouvelles ici.  
 
Merci à tous ceux qui ont cherché à m'aider.  
 
offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
Pages: 1  Reply | Notify of replies | Print

« Previous topic | Next topic »

« Myriad Forum » Powered by YaBB 1 Gold - SP 1.1!
YaBB © 2000-2002,
Xnull. All Rights Reserved.

Top of page
Legal information Last update:  (c) Myriad