[R] Valeur de temps réelle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
deviante
Niveau 2
Niveau 2
Messages : 18
Enregistré le : ven. 17 oct. 2008 20:22
Status : Hors ligne

[R] Valeur de temps réelle

#1

Message par deviante »

Bonsoir,

Voilà j'ai fait un script qui effectue un clique et quelques autres actions toutes les x "secondes", je met secondes entre guillemets parce qu'en faite voilà comme je m'y suis pris :

j'ai une boucle while avec dedans des if, avec un sleep(50) et à chaque fois ca incrémente un $time de 0.05, je pensais logiquement que ca me ferait des secondes précises qui auraient la meme durée qu'une vraie seconde vu que y a pas des milliers de lignes de codes entre chaque sleep...
mais voilà MES "secondes" sont plus lentes que les vrais.... mais ca c'est pas encore plus grave ce qui me gene le plus c'est que en fonction du pc sur lequel le script est executé c'est plus ou moins lent.... donc j'imagine que c'est simplement la maniere donc je my suis prise qui est biaisé et que dans le principe ca marche mais que comme chaque pc execute le code plus ou moins rapidement au final je n'arrive pas à mes fins (et il faut que tout les pcs aillent à la meme vitesse) .

Donc est ce que vous auriez une solution générale?

Merci d'avance.

Edit: voilà c'est modifié, je t'assure que y avait volonté de bien faire, j'étais aller voir le topic épinglé : à lire avant de poster pour voir ce genre de règles et je n'avais rien vu donc j'avais poster tel quel, merci de m'avoir donner le lien aulieu de me jeter:p
Modifié en dernier par deviante le sam. 18 oct. 2008 00:00, modifié 4 fois.
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: Valeure de temps réelle

#2

Message par L4crymal »

Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Valeure de temps réelle

#3

Message par sylvanie »

si le script est du type

Code : Tout sélectionner

while 1
  actions
  sleep(50)
wend
 
c'est normal, car "Actions" n'est pas gratuit en temps
le temps entre 2 tours de boucle est 50ms + tps d'exécution des actions
Au mieux, l'optimisation de "Actions" fera qu'on s'approche des 50ms, mais pour arriver à 0, ça ne va pas être possible.

un compromis, si on veut réaliser une tâche toute les 50 ms sans passer par le sleep est adlibenable :

Code : Tout sélectionner

adlibenable("actions",50)
while 1
sleep(10)
wend

Func Actions
listes des actions
Endfunc
 
la boucle principale fera des sleep de 10ms pour ne pas consommer le cpu inutilement.
"Presque ..." parallèlement, la fonction Actions va être appelée toutes les 50 ms.
Si le temps d'exécution des actions est inférieur à 50 ms, alors on sera sorti de la fonction avant d'être rappelé. Si le temps d'éxécution est supérieur alors je crains qu' adlibenable ne puisse relancer la fonction qui n'a pas fini sont éxécution.
Du coups le temps ici sera max (50ms,tps exécution)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Valeure de temps réelle

#4

Message par timmalos »

Et deviante, quand un moderateur edite votre script pour enlever une faute d'orthographe qui lui saute aux yeux, ca ne sert a rien de remettre la faute !

Si si, je vous jure,

Valeure s'ecrit valeur et pas valeure !

:arrow: La valeur est en économie la valeur d'un bien ou d'un service qui naît des besoins et des désirs contraints par :- la rareté (« ce qui est rare est cher »),- le coût (« conçu comme la somme des intrants »),- l'utilité (« si j'en ai besoin, je suis prêt à y mettre le prix »),- et ...

:arrow: Aucune definition de valeure n’a été trouvée.

D'ailleurs, j'en profite pour ... te feliciter:
"parce qu'en faite voilà comme "
J'ai jamais reussi a placer autant de mots comme toi a la suite... :wink:
deviante
Niveau 2
Niveau 2
Messages : 18
Enregistré le : ven. 17 oct. 2008 20:22
Status : Hors ligne

Re: [..] Valeur de temps réelle

#5

Message par deviante »

J'ai remis la faute parce que j'ai corrigé le titre car à la base je n'avais pas fait un titre correct donc j'ai refait un copié coller en ajoutant les crochets....j'ai pas essayé de remettre valeure je comprend pas ....

Désolé pour le pavé que j'ai pondu je vais essayer d'y remédier à l'avenir ....
deviante
Niveau 2
Niveau 2
Messages : 18
Enregistré le : ven. 17 oct. 2008 20:22
Status : Hors ligne

Re: [..] Valeur de temps réelle

#6

Message par deviante »

avec adlienable j'aurais toujours le meme type de problème non?

j'aurais des ""secondes"" à l'inverse plus courte au pire.... ce qui ne m'aide pas plus.

avec TimerInit() et TimerDiff() y a moyen de faire quelque chose?

Comme une fonction appelée à la fin de chaque boucle et qui incrémenterait la variable $timer du temps écoulé?

Ensuite pour mes tests dessus en utilisant la fonction Int() je dois retourner un entier ....
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Valeur de temps réelle

#7

Message par sylvanie »

deviante a écrit :avec adlienable j'aurais toujours le meme type de problème non?

j'aurais des ""secondes"" à l'inverse plus courte au pire.... ce qui ne m'aide pas plus.
Non, je dirais que tu as une chance d'avoir des vraies secondes, sous réserve que le temps d'exécution de la fonction pointée par adlibenable est inférieur à 50ms
deviante a écrit : avec TimerInit() et TimerDiff() y a moyen de faire quelque chose?
mesurer 2 prises de temps.
deviante a écrit : Comme une fonction appelée à la fin de chaque boucle et qui incrémenterait la variable $timer du temps écoulé?

Ensuite pour mes tests dessus en utilisant la fonction Int() je dois retourner un entier ....
tu auras effectivement le temps écoulé lors de l'éxécution
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Valeur de temps réelle

#8

Message par Tlem »

deviante a écrit :j'étais aller voir le topic épinglé : à lire avant de poster pour voir ce genre de règles et je n'avais rien vu donc j'avais poster tel quel
Remarque tout à fait juste et erreur corrigée.
Je modifierais le lien : "Les règles du forum" pour le renvoyer directement dans le forum des règles et non sur le post originel).

Merci.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
deviante
Niveau 2
Niveau 2
Messages : 18
Enregistré le : ven. 17 oct. 2008 20:22
Status : Hors ligne

Re: [..] Valeur de temps réelle

#9

Message par deviante »

Ok ben merci j'ai trouvé la solution j'utilise TimerInit() et TimerDiff() , et je récupére des valeures entieres avec init() ca ne m'oblige pas à changer tout monde code .
Je met mon sujet en résolu merci à tous :D
Répondre