» »

[c++] merjenje časa izvajanja dela kode

[c++] merjenje časa izvajanja dela kode

gtu ::

Pozdravljeni,
zanima me kateri je pravi način za merjenje časa izvajanje dela programske kode v C++.
Na spletu sem našel nekaj načinov, ampak ne vem če dajo pravilne rezulate.

Prvi način:
http://www.cplusplus.com/reference/ctim...
t = clock();
function();
t = clock() - t;
elapsed = ((float)t)/CLOCKS_PER_SEC);


Drugi način:
http://stackoverflow.com/questions/2238...
http://www.cplusplus.com/reference/chro...
high_resolution_clock::time_point t1 = high_resolution_clock::now();
function();
high_resolution_clock::time_point t2 = high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>( t2 - t1 ).count();


Skrbi me, da tole šteje tudi čas, ki ga porabljajo drugi programi, med katerimi preklaplja OS.
Je ta skrb odveč ali naj to pač vzamem v zakup in med "merjenjem" probam pustiti vse drugo pri miru?

Hvala in lp
  • spremenil: gtu ()

Isotropic ::

poglej si kakšen profiler raje, recimo v visual studiu

gtu ::

Mogoče veš kaj pride v poštev za CodeBlocks. To bi rad izvajal na linuxu, ubunut 14.04, ARM
morda tole: https://sourceware.org/binutils/docs/gp... ?

gtu ::

Ojla,
sedaj mi je uspelo pognati ta profiler v code::blocks, ampak mi tele ničle ne povedo nič. verjetno je to za precej bolj zahtevne programe, kot jih želim meriti jaz.
tukaj je output: (call garph je prazen)
 Flat profile

Flat profile


 Misc

Misc


Delam kaj narobe?

win64 ::

Funkcija se prehitro zažene. Meri recimo 1000 ponovitev(daš funkcijo v for zanko), pa vzemi povprečje.
Normalno pa je, da si deliš procesor z drugimi programi, tega ne boš preprečil. (no lahko nastaviš scheduler na batch)

Zgodovina sprememb…

  • spremenil: win64 ()

gtu ::

Potemtakem je vseeno če mmerim na načine iz prvega posta?

win64 ::

Zdaj odvisno kaj meriš pa koliko ti je pomembna natančnost.
Načeloma pa bo delalo tudi s prvim načinom.

gtu ::

Tudi ko sem dal funkcijo v zanko (10000 iteracij) mi ta profiler še vedno daje kar ene številke. Preračun je trajal cca 30sekund, a nekih pametnih rezultatov ni prikazalo.
Primerjal bi pa rad čas izvajanja iste funkcije na cpu in gpu(cuda).


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kako zaznati in izpisati več znakov v stringu?

Oddelek: Programiranje
121576 (1400) Ciklamen
»

c++ pretvorba malih črk v velike in obratno

Oddelek: Programiranje
10993 (782) cosa nostra
»

[C++]Polje neznane velikost

Oddelek: Programiranje
71099 (992) Senitel
»

[C++] Obdelovanje vhodnega besedila

Oddelek: Programiranje
8848 (772) technolog
»

C++ statistika

Oddelek: Programiranje
121505 (1178) hexor

Več podobnih tem