Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Ticks-czy są to cykle zegarowe i jak przeliczyć na ms?

Bruum 01 Wrz 2011 17:48 1740 2
  • #1 01 Wrz 2011 17:48
    Bruum
    Poziom 23  

    Witam!
    W odpowiedzi na inny mój post znalazł się termin "ticks". Przypuszczam, że chodzi tu o cykle zegarowe procesora. Czy proste przeliczenie np 1/2ghz zegara da czas 1 ticks'a, czy jest inna formuła?

    0 2
  • #2 01 Wrz 2011 19:11
    Dżyszla
    Poziom 42  

    Jeśli chodzi Ci o GetTickCount, to: function retrieves the number of milliseconds that have elapsed since Windows was started. Czyli po prostu zegar dużej precyzji.

    Jeśli chcesz powiązać się z taktami procesora, to:
    QueryPerformanceCounter - function retrieves the current value of the high-resolution performance counter, if one exists.
    oraz
    QueryPerformanceFrequency - function retrieves the frequency of the high-resolution performance counter, if one exists.

    W praktyce:
    https://www.elektroda.pl/rtvforum/topic801532.html

    0
  • #3 01 Wrz 2011 19:31
    marcinj12
    Poziom 40  

    Raczej nie...
    W C# i klasie StopWatch (bo przypuszczam że o tym mowa), to za MSDN (dobry przykład programu) można przyjąć, że tick jest dokładniejszą jednostką pomiaru czasu niż milisekunda, czyli że jedna ms składa się z większej liczby tick'sów. Z ilu dokładnie - zależy od "wewnętrznego timera i systemu operacyjnego".
    W C# klasa StopWatch ma statyczną właściwość Stopwatch.Frequency, która pokazuje ile tick'sów jest w jednej sekundzie dla danego środowiska, więc można ją wykorzystać do przeliczeń tick na ms (np. na moim i5@2,3GHz jest to 2241054 ticks / s)

    0