ďťż

Ładny brzuch

Witam!

Mam pytanie odnośnie funkcji GetTickCount(), która liczy czas działania programu. Mam np. program, który wypisuje liczby słownie z przedziału [-9999 9999]:

---> http://wklej.org/id/69449/

Program będzie czekał na to aż wpiszemy jakąś liczbę i to oczekiwanie też doda do końcowego rezultatu. Lepiej już dać np. coś takiego, gdzie ta funkcja jest w funkcji, ale to nie działa. Zawsze wyświetla 0 ms :blink:

---> http://wklej.org/id/69450/

Czego tak się dzieje ?
Użytkownik Quentin edytował ten post 25 marzec 2009, 17:19


Sory, ale co Ci nie działa? Z pierwszego kodu poprawnie pokazuje czas uruchomienia programu :blink:

Z pierwszego - a z drugiego nie. Ja chcę obliczyć czas wykonywania funkcji, bo jak ustawię czas na zakres całego programu to doliczy mi do tego sekundy wpisywania przez użytkownika liczby :/

to sie dzieje tak szybko ze trwa ponizej 1 ms

zrob sobie petle w tej funkcji to zobaczysz wiecej niz 0 ms..
Użytkownik fernandez edytował ten post 25 marzec 2009, 18:48


Zainteresuj się funkcjami QueryPerformanceCounter oraz QueryPerformanceFrequency.

A czy ktoś mógłby mi wytłumaczyć bliżej o co chodzi z tym argumentem funkcji QueryPerformanceCounter ?

Na:

---> http://msdn.microsof...904(VS.85).aspx

jest napisane:


Pointer to a variable that receives the current performance-counter value, in counts.

Ale, eee nie wiele z tego rozumiem. O jaki dokładnie wskaźnik tu chodzi ? Nie znam się dużo na tych funkcjach z biblioteki windows.h :-/
Użytkownik Quentin edytował ten post 28 marzec 2009, 19:58
Użyj takiej funkcji do pobrania bieżącego czasu:
double GetTime() { long long f,t; QueryPerformanceFrequency((PLARGE_INTEGER)&f); QueryPerformanceCounter((PLARGE_INTEGER)&t); return (double)t/(double)f; }
Jeśli zapiszesz coś takiego:
double t1=GetTime(); //(*) ... double t2=GetTime(); //(**) cout << t2-t1 <<endl;
To otrzymasz czas działania kodu między (*) a (**) w sekundach.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •