|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
[PROGRAMOWANIE] Czym w C++ dokladnie mierzyc czas? , waski 9/10/04 18:51 Witam
Wlasnie zabralem sie do pisania programu na laborki - mamy porownac predkosci roznych algorytmow sortowania oraz ich czas wykonywania w zaleznosci od danych wejsciowych.
Program jest w trybie tekstowym pisany w VC++ 6. Trzeba dokladnie zmierzyc czas tych operacji... Podpowiecie, jakich funkcji uzyc w C/C++? Niestety nie mam MSDN, za to modem i nic ciekawego znalezc nie moge :(
W Delphi jest cos takiego jak QueryPerformanceCounter i QueryPerformanceFrequency, jest jakis tego odpowiednik? Struktury w time.h chyba podaja z dokladnoscia do sekundy :/
Z gory dzieki za pomoc!SNAFU
Situation Normal, All Fucked Up - instrukcją procesora , JOTEM 9/10/04 19:06
rdtsc
odpowiedni zapis dla pascala:
function rdtsc:int64;
asm
db $0f
db $31
end;
Jest znacznie lepsza niż QueryPerformanceCounter i QueryPerformanceFrequency a można ją zastosować w każdym języku, w którym da się wpisać wstawki asemblerowe.
PozdrawiamPoryjemy..zrobaczymy - sprobuje , waski 9/10/04 19:50
Choc szczerze mowiac asm niezbyt znam i lubie jak na razie ;)
Ale jako ze w tym semestrze zaczynam programowanie niskopoziomowe (w tym asembler i C) wiec zaraz zobacze co z tego wyjdzie...
dzieki
rowniez pozdrawiamSNAFU
Situation Normal, All Fucked Up - wpisz w googlu to sięduzo dowiesz - to znana rzecz , JOTEM 9/10/04 19:58
a tak na szybko - to zwraca (załóżmy) ilość taktów od uruchomienia procesora. Najpierw kalibrujesz ze zwykłym zegarem - odliczasz jakiś tam czas zwykłym zegarem - np sekundę z dokładnością do 10tek ms i sprawdzasz jaka jest różnica wskazań.
Niestety nieco upierdliwie działa na procesorach z HT, moze sięo kilka/kilkanaście taktów zegara mylić. W stosunku do
QueryPerformanceCounter i QueryPerformanceFrequency ma znacznie krótszy czas trwania samej instrukcji i na dokładkę znacznie bardziej powtarzalny. Wywołaj np raz po razie QueryPerformanceCounter i raz po razie rdts - sam zobaczysz.
Zjadłem na tym zęby - nie ma nic lepszego.Poryjemy..zrobaczymy - Ma tylko jedną słabą stronę , exmac 11/10/04 12:32
Na P4 częstotliwość zmienia się w zależności od temperatury, a na Pentium-M jeszcze dodatkowo od źródła zasilania, stanu baterii, obciążenia procesora......
No i jakiś inny process może Ci zresetować licznik, a wtedy kapota..... :)
- mam tu dobry opis bibliotek, w których na pewno znajdziesz coś przydatnego , Morgoth 9/10/04 23:07
Strona główna:
http://www.dinkumware.com/libraries_ref.html
Opis biblioteki time.h:
http://www.dinkumware.com/...b=cpl&h=time.html
Niestety nie pamiętam nazwy tej funkcji, ponieważ od jakichś dwóch lat nie zajmuję się kodowaniem w C++, ale poszukaj na tej stronie. Jest tam coś do dokładnego pomiaru czasu, ponieważ sam tam to kiedyś znalazłem:)- dzieki , waski 10/10/04 11:12
ta stronka moze sie przydac w przyslosci :)SNAFU
Situation Normal, All Fucked Up
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|