niedziela, listopada 15, 2009

"Powszechnie znane" prawdy o wydajności to często bujdy na resorach

Trochę mnie przeraża posługiwanie się "powszechnie znanymi" prawdami gdy mowa o wydajności.

"Java jest wolna", tak w każdym bądź razie twierdzi wielu. Jak pokazały między innymi moje testy, Java jest szybka. Momentami ociera się o wydajność porównywalną z C i C++, a zwykle jej wydajność jest tego samego rzędu co w przypadku tych dwóch języków.

"Chrome jest najszybszą przeglądarką", to tez tak "powszechnie znana" prawda.
Ale ja sam na swoich komputerach mam tak, że wszędzie bardziej responsywny, a więc dla mnie i szybszy jest Firefox. JavaScript Firefoksa w pewnych zadaniach też jest szybszy od tego z Chrome.
Prawdę mówiąc pierwszym komputerem na którym mogę używać Chrome bez obawy, że dostanę cholery czekając na pokazanie strony [po przełączeniu się z innej strony] jest mój nowy laptop, ale on ma 4GB RAM! tutaj nawet IE MUSI być szybki ;-)

"Linux jest szybszy od Windowsa". To też nie do końca prawda, szczególnie gdy chodzi o przełączanie wątków, które w Linuksie jest wolniejsze. Stąd np. wydajność klientów Seti@Home czy teraz Boing'a jest zwykle niższa na Linuksie niż pod Windows na tym samym sprzęcie.

"Szybkość komputera zależy głównie od szybkości procesora".
Też nieprawda. Największy wzrost wydajność zawsze zauważałem po zwiększeniu pojemności RAMu. Bo bądźmy szczerzy pod takim Windows, jeśli nie masz odpowiednio dużo RAM [teraz 4 GB to rozsądne minimum] to procesor Twojego komputera i tak będzie marnował miliardy taktów tylko na to by czekać aż mechanizm stronicowania przerzuci do RAM z dysku potrzebny kawałek pamięci.
Inna sprawa, że nawet sama szybkość procesora, mierzona w ilości rzeczy, które jest w stanie zrobić w jednostce czasu nie zależy wcale tak bardzo od taktowania, a bardziej od jego architektury, o czym już tu kiedyś pisałem porównując procesory Intel Celeron 900 MHz z Intel Atom 1.6 GHz.

Teraz zaś przyszła nowa "powszechnie znana" prawda, która mówi "Go jest szybkie". Nie, na razie jest tylko porównywalne do C/C++ i Java'y. Ma za sobą potencjał więc jest szansa, że będzie szybkie.
Ale trzeba przyznać, że kompilator Go JEST szybki i to bardzo :-)


Podobne postybeta
Celeron M353 900MHz vs. Intel Atom 1.6GHz, czyli o tym czemu jest remis? ;-)
Atom
Freakonomia, czy jak kto woli Freakonomics
C# i Java okazały się szybsza od Pythona :-) [było Java okazała się szybsza od C# i Pythona]
O wyższości aplikacji natywnych nad tymi w HTML5 - od strony developera