Article View: pl.comp.lang.asm
Article #2463Re: Skąd dokładny zegar w C pod Win XP/7 ?
From: Borneq
Date: Sun, 08 May 2011 22:09
Date: Sun, 08 May 2011 22:09
33 lines
2189 bytes
2189 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.
Technical Details
Message-ID:
<iq74b6$p7q$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mailReferences:
<iq71hq$q7r$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail From: Borneq <borneq@antyspam.hidden.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Skąd dokładny zegar w C pod Win XP/7 ? Date: Mon, 09 May 2011 00:09:59 +0200 Organization: http://onet.pl Lines: 33 Message-ID: <iq74b6$p7q$1@news.onet.pl> References: <iq71hq$q7r$1@inews.gazeta.pl> NNTP-Posting-Host: 194.117.241.254 Mime-Version: 1.0 X-Trace: news.onet.pl 1304892582 25850 194.117.241.254 (8 May 2011 22:09:42 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Sun, 8 May 2011 22:09:42 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 In-Reply-To: <iq71hq$q7r$1@inews.gazeta.pl> X-Antivirus: avast! (VPS 110508-1, 2011-05-08), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit