[ Vic @ 30.11.2006. 13:31 ] @
Kako najprakticnije iz delphija izracunati vreme potrebno za kopiranje ili ucitavanje fajla u memoriju? |
[ Vic @ 30.11.2006. 13:31 ] @
[ Srki_82 @ 30.11.2006. 14:15 ] @
Procitas vreme (zavisi koliko precizan zelis da budes... mozes procitati broj milisekundi od kad je win startovan, a mozes citati i high freq. brojac ako zelis preciznije merenje)pre i posle otvaranja/ucitavanja/kopiranja fajla i odredis razliku... to je trazeno vreme.
[ savkic @ 30.11.2006. 15:34 ] @
> Procitas vreme (zavisi koliko precizan zelis da budes... mozes procitati broj milisekundi od kad je win startovan, a mozes citati i high freq. brojac
> ako zelis preciznije merenje)pre i posle otvaranja/ucitavanja/kopiranja fajla i odredis razliku... to je trazeno vreme. Za slučaj da se želi još veća preciznost/tačnost od HighFreq brojača, može se koristiti RDTSC, procesorov brojač izvršenih ciklusa od uključivanja računara. [ vlaiv @ 01.12.2006. 14:25 ] @
Ako si ipak pitao nesto drugo (bar sam ja pomislio iz tvog pitanja da si mislio na to) onda moze ovako:
Krenes da ucitavas fajl sa nekim block read-om (znaci segment po segment fajla) i za svaki segment meris prolazno vreme. 1. - 2 sekunde ... 2. - 1.5 sekundi ... 3. - 1.6 sekundi ... (lupetam) I znas da ima recimo 32 segmenta ... (mozes i po broju bajtova) I onda lepo kazes aha, za 3 segmenta mi je trebalo 4.1 sekunda, sto znaci da ce za preostalih 29 segmenata (32-3 = 29) biti potrebno (29/3)*4.1 (zagrada nije potrebna ali sam je ubacio radi lakseg shvatanja sta i zasto racunas) i onda napises 40 sec remaining ... i radis update na svaki segment, ili sekund ili sta vec.... To mu valjda dodje linearna extrapolacija (nisam siguran da li je to tacan izraz i dali je to to, cini mi se da jeste (davno sam ja studirao), ako ne neka me neko ispravi) Ako ti je ucitavanje priblizno linearno - koristis to za precizan rezultat. Ako ucitavanje varira po brzini (recimo opticki uredjaj ili download) - postoje i drugi extrapolacioni algoritmi koji mogu aproximirati citavu stvar a mozes ponuditi i par brojaca (ovo pisem samo zato sto me je oduvek nervirao windows download dijalog sa sumanutim predikcijama posto su koristili ono linearno ...) pa kazes, u proseku citavog fajla bice gotovo za 4:23 a po onome sto se desavalo u poslednjih pet sekundi cini mi se da ce ovaj download trajati 1 day 22:12:07 ... :) Ako sa druge strane zelis da izracunas koliko ce to trajati bez da se proba, to mislim da je dosta kompleksnije (nisam cak ni siguran kako bi se to dalo uraditi ali moze da se napravi dobra aproximacija tako sto ces za razlicite segmente ucitavanja fajla napraviti referentne vrednosti u odnosu na neki izmereni sistem - pristup disku, srednja brzina citanja, zauzetost procesora, snaga procesora, propusna moc kontrolera i tako neke stvari pa onda na osnovu referentih vrednosi i realnih vrednosti (koje ili da meris ili kao pokusas da skontas na osnovu hardware-a) napravis racunicu) Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|