Różnice wydajności między 32 a 64 bitowym systemem
18 October 2008
Comments
W laptopach obecnie stosowane są 32 bitowe procesory Intel Core 2 Duo i pochodne oraz 64 bitowe dwurdzeniowe AMD Turion X2 (AMD Puma). W testach ogólnie procesory AMD wypadają gorzej, lecz testy prowadzone są na 32 bitowym MS Windows. W przypadku Linuksa możemy jednak bez problemu używać 64 bitowego systemu z procesorami AMD. Rodzi się pytanie - jaka jest różnica wydajności między 32 a 64 bitowym systemem na tym samym procesorze?
Na starym już laptopie Acer Aspier 5002 WLMi z procesorem AMD Turion 64ML-30 zainstalowałem Archlinuksa w wersji 32 i 64 bitowej z tym samym oprogramowaniem. Do porównania wydajności wykorzystałem proste aplikacje uruchamiane z trybu tekstowego gdy system nie wykonywał innych operacji.
Łamanie md5 brutalnym atakiem
Mierzyłem czas złamania określonego hasza md5 za pomocą skryptu Pythona:import md5
import sys
haslo = 'kogut'
hasz_hasla = md5.new(haslo).hexdigest()
def make_word(m, base_string=False):
znaki = 'qwertyuiopasdfghjklzxcvbnm'
for i in znaki:
if base_string:
string = base_string + i
else:
string = i
if md5.new(string).hexdigest() == m:
print 'Podane Haslo to: ' + string
sys.exit()
elif len(string) < 5:
make_word(m=m, base_string=string)
make_word(hasz_hasla)

Tarowanie Tar.Bz2
Mierzyłem czas rozpakowania do /dev/null 118MB pliku TAR.BZ2 (Gentoo stage3) zawierającego dużą ilość plików i katalogów:time tar -xvjpf plik.tar.bz2 -O > /dev/null
System 32 bitowy przegrywa z 64 bitowym o około 14% (48,3 wobec 42,3 sek dla x86_64). Ze względu na dużo operacji wejścia/wyjścia wyniki mogę być niezbyt dokładne.

Konwersja Ogg do Avi
Mierzyłem czas potrzebny na przetworzenie pliku ogg (big_buck_bunny_480p_stereo 160 MB) na avi za pomocą ffmpeg.:ffmpeg -i big_buck_bunny_480p_stereo.ogg a.avi FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --prefix=/usr --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-libfaac --enable-libfaad --enable-liba52 --enable-libxvid --enable-libx264 --enable-libtheora --enable-postproc --enable-shared --enable-pthreads --enable-x11grab --enable-swscale libavutil version: 49.7.0 libavcodec version: 51.60.0 libavformat version: 52.17.0 libavdevice version: 52.0.0 built on Jul 20 2008 05:42:19, gcc: 4.3.1 20080626 (prerelease) [theora @ 0xb7cc49b0]344 bits left in packet 81 [theora @ 0xb7cc49b0]7 bits left in packet 82 Input #0, ogg, from 'big_buck_bunny_480p_stereo.ogg': Duration: 00:09:56.45, start: 0.000000, bitrate: 2237 kb/s Stream #0.0: Video: theora, yuv420p, 854x480, 24.00 tb(r) Stream #0.1: Audio: vorbis, 48000 Hz, stereo, 192 kb/s

mencoder big_buck_bunny_480p_stereo.ogg -oac lavc -ovc lavc -o a.mpeg
O 5% wydajniejszy okazał się system 64 bitowy. Jak widać dla multimediów nie ma zbyt dużych i jednoznacznych różnic.
Skalowanie jpg
Mierzyłem czas potrzebny na stworzenie miniatury z 3,1 MB pliku jpg (3264x2448) za pomocą ImageMagick:convert a.jpg -size 400x400 -thumbnail 400x400 aa.jpg
System 32 bitowy przegrywa o 27% z systemem 64 bitowym (1,62 wobec 1,28 sek dla x86_64).

RkBlog
Comment article