🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2409

Re: =?ISO-8859-2?Q?Sk±d_dok³adny_zegar_w_C_pod_W?= =?ISO-8859-2?Q?in_XP/7_??

#2409
From: Borneq
Date: Mon, 09 May 2011 00:09
34 lines
1247 bytes
W dniu 2011-05-08 23:22, KrisB pisze:
> Potrzebuj� zrobi� por�wnanie czasu wykonania algorytm�w pod Visual C++ i
> Win XP/7.
>
> Funkcja C time( time_t) z rozdzielczo�ci� do milisekund mi nie
> wystarcza-potrzebuj� rozdzielczo�ci gdzie� do mikrosekund. (mo�e by�
> wstawka asm)

QueryPerformanceCounter chodzi z cz�stotliwo�ci� oko�o 3 MHz ale lepiej
odczyta� t� cz�stotliwo�� za pomoc� QueryPerformanceFrequency.
Je�li by to nie wystarczy�o mo�na u�y� wstawki assemblerowej RDTSC kt�ra
mierzy pojedyncze takty CPU (!) i jej wywo�anie trwa bardzo kr�tko.
Nale�y jednak pami�ta� �e na wielordzeniowych procesorach (wielu
procesorach) g�upio si� zachowuje, bo ka�dy rdze� ma sw�j w�asny
taktomierz, kt�re si� rozje�dzaj�. Aby wi�c zmierzy� w�tek/proces
    nn rekord typu 64 bitowego
   _asm{
     dw 310Fh // rdtsc
     mov nn.Lo, eax
     mov nn.Hi, edx
   }
proceura do mierzenia
   _asm
   {
     dw 310Fh // rdtsc
     sub eax, nn.Lo
     sbb edx, nn.Hi
     mov nn.Lo, eax
     mov nn.Hi, edx
   }
nale�y ustawi� aby by� wykonywany tylko przez jeden rdze�:
SetProcessAffinityMask(GetCurrentProcess(), 1);
inaczej ma si� dziwne wyniki.

Message-ID: <iq74b6$p7q$1@news.onet.pl>
Path: polish.pugleaf.net!archive.newsdeef.eu!mbox2nntp-pl.comp.lang.asm.mbox.zip!g2news1.google.com!news3.google.com!feeder.news-service.com!feeder.erje.net!news2.arglkargh.de!news.n-ix.net!news.belwue.de!news.uni-stuttgart.de!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
References: <iq71hq$q7r$1@inews.gazeta.pl>