Titlul: Timp de executie Scris de: Andreica din Februarie 27, 2005, 15:24:33 Ma poate invata cineva cum sa verific in cat timp imi ruleaza un program(cu precizie de trei zecimale).
Am tot studiat time.h dar daca un program imi ruleaza in 0.1 imi afiseaza 0. !Folosesc Borland 3.1 / Devc++.[/b] Titlul: Timp de executie Scris de: Anton Alexandru din Februarie 27, 2005, 15:53:29 incearca chestia urmatoare:
Cod:
E o chestie mai veche care face apel la locatia $0000:$046C , pe care unde este reprezentat pe 4 bytes cat timp o trecut de la ora 00:00 (mai exact numarul de tacti; 1sec = 18 tacti); Titlul: Timp de executie Scris de: Cristian Strat din Februarie 27, 2005, 17:40:12 Citat E o chestie mai veche care face apel la locatia $0000:$046C , pe care unde este reprezentat pe 4 bytes cat timp o trecut de la ora 00:00 (mai exact numarul de tacti; 1sec = 18 tacti); eu zic sa nu incerci asa :D $0000:$046C e o poveste cu MSDOS iar numarul de tacti pe secunda depinde de procesor. solutia portabila e folosirea functiei time() si a constantei CLOCKS_PER_SEC (sau CLK_TCK pe compilatoare mai vechi) Titlul: Timp de executie Scris de: Andreica din Februarie 27, 2005, 19:30:21 WICKEDMAN!!
#include <time.h> #include <stdio.h> int main(void) { long start,end; start=clock(); do end=clock(); while((end-start)/CLK_TCK<1); } end-start/CLK_TCK reprezinta nr de sec de la inceputul programului,nu? Ce fac pt. milisec ex(0.01 s)? Titlul: Timp de executie Scris de: Anton Alexandru din Februarie 27, 2005, 19:36:35 Faza cu $0000:$046C o stiu din cartea de la centrele de excelenta! Hai sa-i anuntam si noi pe ei ca au gresit!!!
Titlul: Timp de executie Scris de: Mircea Pasoi din Februarie 27, 2005, 19:47:59 Citat din mesajul lui: LordAnta Faza cu $0000:$046C o stiu din cartea de la centrele de excelenta! Hai sa-i anuntam si noi pe ei ca au gresit!!! N-au gresit.. doar ca faza asta merge doar pe Borland C++ ... ce a zis wickedman merge cam pe orice, inclusiv gcc. Titlul: Timp de executie Scris de: Cristian Strat din Februarie 28, 2005, 01:51:33 Citat din mesajul lui: sori Ce fac pt. milisec ex(0.01 s)? clock() iti intoarce timpul trecut de la inceputul rularii programului. precizia e suficient de mare. ai grija doar sa fortezi tipul expresiei in double / float Cod: while (0.5 > (double)(end-start)/CLOCKS_PER_SEC) { asteapta 1/2s Titlul: Timp de executie Scris de: Twister din Martie 04, 2005, 10:27:34 Citat din mesajul lui: LordAnta Faza cu $0000:$046C o stiu din cartea de la centrele de excelenta! Hai sa-i anuntam si noi pe ei ca au gresit!!! Care carte? Exista vreo carte a centrelor de excelenta? Titlul: Timp de executie Scris de: Cosmin Negruseri din Martie 04, 2005, 10:46:44 In freepascal este in unitul sysutils functia now care o puteti folosi pentru a determina durata de executie a unui program, asta daca nu vreti sa folositi toata viata borland pe 16 biti (si in delphi exista functia now in acelasi unit).
Titlul: Timp de executie Scris de: Valentin Stanciu din Martie 04, 2005, 10:48:10 Citat din mesajul lui: wickedman Citat din mesajul lui: sori Ce fac pt. milisec ex(0.01 s)? time(0) iti intoarce timpul trecut de la inceputul rularii programului. precizia e suficient de mare. ai grija doar sa fortezi tipul expresiei in double / float Cod: while (0.5 > (double)(end-start)/CLOCKS_PER_SEC) { asteapta 1/2s Dar parca time() iti intorcea timpul in secunde?! 1. daca il fortezi in double, iti da si milisecunde?! 2. de ce mai trebuie sa imparti la CLOCKS_PER_SEC?! (asta parca trebuia sa faci, daca luai timpul cu clock() ) Titlul: Timp de executie Scris de: Cristian Strat din Martie 04, 2005, 11:08:08 Citat Dar parca time() iti intorcea timpul in secunde?! oops! my bad :oops: evident e clock(), nu time() Titlul: Timp de executie Scris de: Dobre Catalin Andrei din Aprilie 03, 2005, 20:53:40 Cosmin:
Spuneai sa folosesc functia now ... La functia now in freepascal, tot timpul imi returneaza o valoare constanta. Am incercat in delphi, nu retuneaza si sutimi :( Putin ajutor. Un exemplu ar fi cel mai bine :P PS: Nu am help la freepascal... Titlul: Timp de executie Scris de: Cosmin Negruseri din Aprilie 03, 2005, 23:00:53 Exista documentatie online pentru free pascal, o gasesti usor folosind google, cat despre miimi .. nu returneaza miimi e in alt format rezultatul, citeste in documentatie, pa.
Titlul: Timp de executie Scris de: Dobre Catalin Andrei din Aprilie 04, 2005, 20:25:55 Ok thx
|