Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ocitavanje uptime vremena

[es] :: C/C++ programiranje :: Ocitavanje uptime vremena

[ Pregleda: 2153 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2790 Profil

icon Ocitavanje uptime vremena09.07.2008. u 08:17 - pre 192 meseci
Zanima me kako bih ocitao uptime vreme ili bilo koje drugo vreme koje korisnik racunara ne moze da promeni promenom vremena na casovniku racunara ili na neki drugi nacin. Unutar jednog procesa (i njegovih niti i procesa potomaka) treba da znam koliko je vremena proteklo izmedju dva dogadjaja, a da me korisnik ne zezne.

Ciljne platforme su Linux i Windows. Pozeljno je, ali ne i obavezno, da metod bude portabilan. Drugim recima, ako mogu da napisem funkciju (jezik je C++) koja bi radila na obe platforme, super, a ako ne mogu, nema veze, napisacu pod svakim sistemom zasebnu funkciju.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 08:39 - pre 192 meseci
Probaj ovako:

Code:
#include <time.h>

clock_t start, kraj;
start = clock();
// operacije..
kraj = clock();


Oduzmeš kraj i start i dobiješ provedeno vrijeme u milisekundama. Vrlo je precizno i neovisno o sistemskom vremenu.


 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2790 Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 11:59 - pre 192 meseci
Hvala. No, ovo mi jos ne resava problem jer treba da radim sa preciznoscu od najmanje mikrosekunde (po mogucstvu sa nanosekindama, ako je moguce) dok je konstanta CLOCKS_PER_SEC na Windows platformi jednaka 1000 pod kompajlerima MinGW g++, Borland freecommandline tools bcc32 v5.5 i Microsoft Visual C++ 2008 Express Edition (Visual C++ 9.0 Express Edition). Na Linux platformi u g++ kompajleru je CLOCKS_PER_SEC jednako 10^6, sto je zadovoljavajuce (mada ne i idealno).

Druga stvar je sto bih malo vise voleo da vreme koje merim bude isto za sve pokrenute procese (npr. uptime ili tako nesto) mada i ovo obavlja posao.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 14:13 - pre 192 meseci
http://www.codeproject.com/KB/recipes/precisetimer.aspx
Tko leti vrijedi
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 14:24 - pre 192 meseci
Za Windows pogledati i ovde:
http://www.elitesecurity.org/t112204-0#770480

Ili ovde (autor je nas Dragi Tata)
http://www.codeproject.com/KB/system/timers_intro.aspx
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-a-1.sezampro.yu.



+395 Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 15:44 - pre 192 meseci
CBaseReferenceClock iz klase DirectShow multimedijalnih tajmera :
http://msdn.microsoft.com/en-us/library/ms780534(VS.85).aspx
Vremenska jedinica je REFERENCE_TIME (100 ns) ako hoces preciznost u nanosekundama
Evo i primera :
http://www.codeguru.com/cpp/cp...me/routines/article.php/c6369/





Viva lollapalooza
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2790 Profil

icon Re: Ocitavanje uptime vremena10.07.2008. u 08:25 - pre 192 meseci
Hvala, to je to. Na Linux platformi ovo ovavlja posao:

Code:

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    timespec t;
    clock_gettime(CLOCK_MONOTONIC, &t);
    cout << "Proslo je " << t.tv_sec << " sekundi i " << t.tv_nsec << " nanosekundi." << endl;
    return 0;
}


Naravno, konsultovati man clock_gettime ili potraziti clock_gettime na internetu.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Ocitavanje uptime vremena

[ Pregleda: 2153 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.