Newsgroup: it.comp.lang.delphi
Titolo: Cronometrare procedura

Ciao a tutti !
MI servirebbe un suggerimento, devo cronometrare una procedura che 
impiega molto poco per essere eseguita, tanto poco che gettickcount non 
è affidabile...ho provato a farla ripetere ciclicamente con un FOR, ma 
non mi fido molto del risultato..potete suggerirm i qualcosa ?
ZioGian

ZioGian ha scritto:

*GetTickCount* lavora in millisecondi...se la ritieni inaffidabile, 
forse i tempi di esecuzione della procedura sono del tutto trascurabili.
A che cosa serve, per curiosità? Cosa stai cercando di sperimentare?
-- 
MARCO «Alka» BREVEGLIERI
   (
http://www.marco.breveglieri.name
)
Leggi le FAQ di ICLD: 
http://icld.altervista.org

 è affidabile...[...]..potete suggerirm i qualcosa ?
Da un mio vecchio post, copio incollo.
---------------------------------------
Consegno quindi al ng un mini tutorial  per realizzare un semplice timer e
due
static text che indicano tempo trascorso e tempo rimanente.
Ho fatto uso dei timers forniti con la unit di supporto (OoMisc) delle
ottime
turbopower AsyncPro (
http://sourceforge.net/projects/tpapro/
)
Ho messo delle statictext che vengono opportunamente formattate per
indicare
il tempo trascorso e quello rimanente.
Potete provare anche voi questo facile sistema di misurazione.
Uses OoMisc (dovete avere in path il percorso della asyncpro)
private ET : EventTimer; //dichiaro il timer che verra' usato nel programma
Aggiungo un bottone, due statictext e un ttimer che servira' per il refresh
delle statictext.
Alla pressione del bottone faccio partire il timer di misurazione (ET) e
quello del rinfresco delle etichette (TTimer1)
   Timer1.Enabled := True;
   NewTimerSecs(ET,420); // 420 sec= 7 minuti
Le etichette vengono rinfrescate con l'OnTime del ttimer, il cui interval
e'
impostato a 1 secondo (1000).
procedure TfrmPIPPO.Timer1Timer(Sender: TObject);
begin
   stTrascorso.caption :=
      FormatDateTime('nn:ss', ElapsedTimeInSecs(ET)/SecsPerDay);
   stMancante.caption :=
     FormatDateTime('nn:ss', RemainingTimeInSecs(ET)/SecsPerDay);
end;
Questo semplicissimo metodo ci permette di impostare dei misuratori di
tempo
senza avere la pretesa di spaccare il microsecondo, ma i timers offerti
dalle
async pro sono davvero comodi.
Tra le altre cose, ci sono queste routine che facilitano il lavoro:
DelayTicks
ElapsedTime
ElapsedTimeInSecs
NewTimer
NewTimerSecs
RemainingTime
RemainingTimeInSecs
Secs2Ticks
Ticks2Secs
TimerExpired
Spero possa essere di aiuto a qualcuno un giorno.
Ciao a tutti 
-- 
Morde. 
FAQ di icld (beta-version): 
http://icld.altervista.org
 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

 
Sto lavorando con una scheda di IO, voglio vedere quanto tempo passa da 
quando piloto un'uscita, a quando rilevo il segnale pilotato su uno 
degli ingressi...
Siamo appunto su tempi dell'ordine dei millisecondi..e ho visto che con 
gettickcount ottengo o 0 o 15 ms...mai valori intermedi..da questo la 
presunzione di inaffidabilita.
ZioGian

 ZioGian
per esperienza personale con il componente timer nonostante si possa
impostare tempi inferiori non sono mai riuscito ad ottenere
temporizzazioni sotto i 40,50 ms, comunque penso che sia un limite di
windows

 
infatti volevo appunto usare gettickcount....ho attaccato un 
oscilloscopio cmq..e i tempi sono quelli detti in precedenza..in media 
15 ms per le 2 operazioni..mi aspettavo meno ma vabbe !
ZioGian

 ha scritto nel messaggio
news:1115203047.0...@g14g2000cwa.googlegroups.com...


 presunzione di inaffidabilita.
http://tinyurl.com/6p29c
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it