» »

[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/
  • 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

Keki ::

pardon, čisto pozabo ker že skoro sanjam c++ :D sem editiral. Torej tema je c++
http://www.alfakan.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 ...

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

Algoritmi za urejanje tabel

Oddelek: Programiranje
51226 (963) lebdim
»

C++ Časovno testiranje kode

Oddelek: Programiranje
5832 (780) zacetnik11
»

Time.h v c-ju.

Oddelek: Programiranje
61018 (821) Wrop
»

[c++] odstevanje

Oddelek: Programiranje
6914 (815) 64202
»

domači benchmark program

Oddelek: Programiranje
71107 (961) ruph

Več podobnih tem