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

Ocitavanje uptime vremena

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

[ Pregleda: 477 | Odgovora: 6 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nedeljko
Nedeljko Stefanovic

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



Profil

icon Ocitavanje uptime vremena09.07.2008. u 08:17

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.
Nedeljko Stefanovic
09.07.2008. u 08:17 

itf
Zagreb

Član broj: 59794
Poruke: 703
161.53.237.*

ICQ: 337738018


Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 08:39
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.


09.07.2008. u 08:39 

Nedeljko
Nedeljko Stefanovic

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



Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 11:59
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.
Nedeljko Stefanovic
09.07.2008. u 11:59 

kiklop74
Darko Miletić
Buenos Aires

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



Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 14:13
http://www.codeproject.com/KB/recipes/precisetimer.aspx
Tko leti vrijedi
09.07.2008. u 14:13 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 14:24
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

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
09.07.2008. u 14:24 

deerbeer
nikola džuverović
xemicomputers

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

Sajt: www.xemico.net


Profil

icon Re: Ocitavanje uptime vremena09.07.2008. u 15:44
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/




09.07.2008. u 15:44 

Nedeljko
Nedeljko Stefanovic

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



Profil

icon Re: Ocitavanje uptime vremena10.07.2008. u 08:25
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.
Nedeljko Stefanovic
10.07.2008. u 08:25 

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

[ Pregleda: 477 | Odgovora: 6 ]

Postavi temu Odgovori

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