Article View: pl.comp.lang.asm
Article #2220Odwracanie kolejności bajtów w tablicy
From: Wojciech Muła
Date: Thu, 22 Apr 2010 17:11
Date: Thu, 22 Apr 2010 17:11
41 lines
3475 bytes
3475 bytes
Hej, kontynuacja wątku założonego przez Andrzeja. U mnie niestety starsze posty wyparowały, więc nie mam gdzie się podczepić. Przetestowałem właśnie kilka metod: * "bajty" - naiwny algorytm zamiany bajt po bajcie * BSWAP - zmiana 4 bajtów na iterację (1 x BSWAP) * 2xBSWAP - zmiana 8 bajtów na iterację (2 x BSWAP) * PSHUFB - zmiana 16 bajtów na iterację (1 x PSHUFB) * 2xPSHUFB - zmiana 32 bajtów na iterację (2 x PSHUFB) Rozmiary tablic są wielokrotnością 32 bajtów, więc wszystkie dostępy do pamięci były wyrównane. Procesor Core 2 Duo E8400. W tabelce są czasy wykonywania kilku-kilkuset tysięcy iteracji. Mój wniosek nie jest odkrywczy: najbardziej ograniczają nas czasy dostępu do pamięci. +-------------+-----------+----------------+----------------+----------------+----------------+ | rozmiar | bajty | BSWAP | 2xBSWAP | PSHUFB | 2xPSHUFB | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 64 B | 759 ms | 292 ms | 2.6 x | 267 ms | 2.8 x | 240 ms | 3.1 x | 138 ms | 5.5 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 128 B | 740 ms | 264 ms | 2.8 x | 218 ms | 3.4 x | 108 ms | 6.8 x | 107 ms | 6.9 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 256 B | 808 ms | 303 ms | 2.6 x | 243 ms | 3.3 x | 81 ms | 9.9 x | 72 ms |11.2 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 512 B | 1026 ms | 394 ms | 2.6 x | 305 ms | 3.3 x | 91 ms |11.2 x | 84 ms |12.2 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 1 kB | 1000 ms | 404 ms | 2.4 x | 298 ms | 3.3 x | 81 ms |12.3 x | 69 ms |14.5 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 4 kB | 786 ms | 312 ms | 2.5 x | 235 ms | 3.3 x | 64 ms |12.0 x | 50 ms |15.7 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 8 kB | 793 ms | 310 ms | 2.5 x | 235 ms | 3.4 x | 61 ms |13.0 x | 51 ms |15.5 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ | 16 kB | 1582 ms | 617 ms | 2.6 x | 467 ms | 3.4 x | 120 ms |13.2 x | 100 ms |15.8 x | +-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+ w. -- Mamy oswojoną sarnę i w związku z tym projektuję, by dorobić do niej kłódkę.
Technical Details
Message-ID:
<20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mail From: Wojciech Muła <wojciech_mula@poczta.null.onet.pl.invalid> Newsgroups: pl.comp.lang.asm Subject: Odwracanie kolejności bajtów w tablicy Date: Thu, 22 Apr 2010 19:11:15 +0200 Organization: http://onet.pl Lines: 61 Message-ID: <20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid> NNTP-Posting-Host: 178.56.0.35 Mime-Version: 1.0 X-Trace: news.onet.pl 1271956287 22011 178.56.0.35 (22 Apr 2010 17:11:27 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Thu, 22 Apr 2010 17:11:27 +0000 (UTC) X-Newsreader: Sylpheed 2.5.0 (GTK+ 2.10.14; i686-pc-mingw32) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit