Page 1 sur 1

[R] Changement de date et consommation processeur

Posté : mar. 28 sept. 2010 22:44
par papus2
j'ai créer un petit programme qui décompte le nombre de jour avant la retraite, j'ai effectué une boucle qui vérifie le la date du système, je met le programme en pause avec la commande sleep(100000), ma question est la suivante : n'y a t'il pas de consommation inutile du processeur sur un programme qui ne fait pas grand chose mais qui tourne 24h sur 24 ?

Code : Tout sélectionner

#include <Date.au3>
#NoTrayIcon
TraySetState()

; Date Julian du jour.
$sJulDate = _DateToDayValue (@YEAR, @MON, @MDAY)
;MsgBox(4096, "", "Todays Julian date is: " & $sJulDate)
$DateDepart=_DateToDayValue (2011, 03, 24)
;MsgBox(4096, "", "Date de départ Julian: " & $DateDepart)

; Nombre de jour
$difference=$DateDepart-$sJulDate
MsgBox(4096, "", "Plus que " & $difference & " jour(s)")

while 1
  $sJulDate = _DateToDayValue (@YEAR, @MON, @MDAY)
  $DateDepart=_DateToDayValue (2011, 03, 24)
  $difference=$DateDepart-$sJulDate
  TraySetToolTip("RETRAITE " & $difference & " Jour(s)")
  Sleep(100000)   ; Idle loop
WEnd
Exit
 
Le code marche bien, ma question est plutot d'ordre général sur la programation
Merci pour vos réponses

Re: [..] Changement de date et consommation processeur

Posté : mer. 29 sept. 2010 00:41
par Tlem
A vrais dire, le code de votre boucle sera lancé toute les 100000ms (soit 1mm40s).
Selon toute vraisemblance, votre code ne devrait pas dépasser les 10ms pour être exécuter. :roll:

Donc 10ms sur 100000ms peut largement être considéré comme une très petite consommation de temps machine. :mrgreen:

Maintenant, une boucle While/Wend avec une simple pause de 100ms et un AdlibRegister toutes les 2 minutes sur la fonction qui calcule la date suffira tout autant. ;)

Re: [R] Changement de date et consommation processeur

Posté : jeu. 30 sept. 2010 00:10
par papus2
impeccable, il est minuit et ça marche, je vais encore peaufiner mon script et mon collègue futur retraité sera content. Pour les essais j'ai fait :

Code : Tout sélectionner

AdlibRegister("TestDate", 1000)
...
Func TestDate(); permet de vérifier la date du jour et de calculer la nouvelle dif
    $sJulDate = _DateToDayValue (@YEAR, @MON, @MDAY)
    $DateDepart=_DateToDayValue ($year, $mon, $day)
    $difference=$DateDepart-$sJulDate
    TraySetToolTip("RETRAITE " & $difference & " Jour(s)")
EndFunc
 
je vais jouer sur le "time" et regarder ce que ça donne
merci pour ton aide :wink: