Ĺ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
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.