Forum » Programiranje » [C++]čas izvajanje zanke/programa
[C++]čas izvajanje zanke/programa
Keki ::
Zanima me kako bi implementiral da bi mi izpisalo kako dolgo je zanka oz cel program v C++ potreboval za svojo izvršitev.
http://www.alfakan.si/
http://mihajerot.si/
http://mihajerot.si/
- spremenilo: Keki ()
Gandalfar ::
jezik?
naceloma pa v pseudo kodi:
date_start = datetime.now()
#
# ... koda ..
#
date_finish = datetime.now()
print "Zacetek:", date_start, "konec:", date_finish, "trajanje:", date_finish - date_start
naceloma pa v pseudo kodi:
date_start = datetime.now()
#
# ... koda ..
#
date_finish = datetime.now()
print "Zacetek:", date_start, "konec:", date_finish, "trajanje:", date_finish - date_start
Keki ::
pardon, čisto pozabo ker že skoro sanjam c++ :D sem editiral. Torej tema je c++
http://www.alfakan.si/
http://mihajerot.si/
http://mihajerot.si/
NSA Agent ::
#include <time.h> ... clock_t startT = clock(); while(true) { .... } clock_t endT = clock(); cout <<"Čas izvajanja: " << (endT - startT)<<endl;
Mene pa zanima kako bi izmeril cikle izvajanja. Pač me ne zanima čas izvajanja programa ampak koliko CPU ciklov sem porabil.
Zato ker nek algoritem na hitri mašini lafa hitrejš kot na počasni, medtem ko pa število CPU ciklov je enako na hitri ali počasni mašini.
Zgodovina sprememb…
- spremenilo: NSA Agent ()
Senitel ::
RDTSC. Ampak je zadeva nekoliko tricky, ker ti lahko vmes OS preklopi thread/zamenja core/...
Shrike ::
Na čem pa to izvajaš (hw)? Na kakšnem mikrokontrolerju bi to še šlo, ker bi bilo število ciklov vedno enako, če pa pride v igro pipeline ali pa cache prefatcher, pa stvari hitro postanejo nedeterministične. Možno bo, da niti dve meritvi ne bosta enaki. Upoštev bi mogoče prišlo če bi naredu 100 meritev pa povrečju? Ali delaš to samo tako informativno? Mnenje low-life hardveraša :P
NSA Agent ::
Ja bol low-life :) (www.mcs.anl.gov/~kazutomo/rdtsc.h) Uporablam pa na dvojedernem sistemu.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Algoritmi za urejanje tabelOddelek: Programiranje | 1226 (963) | lebdim |
» | C++ Časovno testiranje kodeOddelek: Programiranje | 832 (780) | zacetnik11 |
» | Time.h v c-ju.Oddelek: Programiranje | 1018 (821) | Wrop |
» | [c++] odstevanjeOddelek: Programiranje | 914 (815) | 64202 |
» | domači benchmark programOddelek: Programiranje | 1107 (961) | ruph |