Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » mravel 20:15
 » dugi 20:14
 » rurecznik 20:06
 » esteban 20:05
 » zibi13 20:04
 » adolphik 20:03
 » Sherif 20:03
 » siwydym 20:02
 » elliot_pl 19:49
 » DJopek 19:42
 » Curro 19:31
 » wrrr 19:28
 » waski 19:21
 » Draghmar 19:20
 » Wedelek 19:14
 » Kraszan 19:11
 » Katoda Lt 19:10
 » past 19:06
 » bajbusek 19:04
 » ripek 19:03

 Dzisiaj przeczytano
 36865 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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

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

    Pozdrawiam

    Poryjemy..zrobaczymy

    1. 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 pozdrawiam

      SNAFU
      Situation Normal, All Fucked Up

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

        1. 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..... :)

  2. 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:)

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