Przez ostatnie trzy dni, pomimo braku nowych wpisów na blogu, muszę Wam powiedzieć, że nie próżnowałem – a właściwie nie próżnował mój domowy PC. Otóż maszynka testowała dla Was szybkość obliczeń matematycznych w 4 najbardziej popularnych językach programowania aby zbadać właśnie wydajność języków programowania! Jakby tego było mało – porównałem także różne wersje języków, tak aby pokazać wzrost lub spadek wydajności w kolejnych wersjach.

Dziś na pierwszym planie znajduje się system Gentoo Linux, ponieważ tą platformę obrałem jako wzorcową dla testów kolejnych platform – MacOSX Mavericks oraz Windows 8.1.

Jak widzicie, interesuje mnie nie tylko zestawienie wyników przeróżnych języków programowania, ale także fektywność ich na poszczególnych platformach.

Jako test obliczeń matematycznych przyjąłem algorytm obliczania liczb pierwszych!

 

Miejsce 8 – Python 2.7

Python 2.7 okazał się w moim zestawieniu najgorszym rozwiązaniem dla matematyków. Czas wyliczenia bardzo prostym algorytmem pierwszych 30000 liczb pierwszych zajął mu 2375.958 sekundy (39 minut 35 sekund!). Jednocześnie Python 2.7 okazuje się 57 razy wolniejszy od najlepszego w zestawieniu.

The Code

#!/usr/bin/python

n = 30000
lp = 0
p = 2
d = 0
t = False

while lp < n:   t = True   for d in range(2, p-1):     if p % d == 0:       t = False       break

  if t:
    lp=lp+1
  p=p+1

W prawdzie sam Python nie jest językiem trudnym do opanowania, jednak efekt tego jest nieproporcjonalny do szybkości wykonywania tego kodu.

 

Miejsce 7 – Python 3.4

Co nie jest wielkim dla mnie zaskoczeniem, nowsza wersja Python-a nie jest o wiele szybsza niż jej poprzednik. W prawdzie twórcom udało się zmniejszyć dystans do najlepszego języka w zestawieniu, jednak nadal Python 3.4 jest wolniejszy od pierwszego na mecie o 25 razy!

Python 3.4 obliczenia tym samym algorytmem (oraz tym samym kodem) wykonał w 1078.896 sekundy (17 minut, 58 sekund) co sprawia, że jest o ponad połowę szybszy od poprzednika.

 

Miejsce 6 – PHP 5.5.11 [PHP 5.5.11-pl0-gentoo (cli)]

Kolejne miejsce wśród – nie obrażając nikogo nazwę to „nie do końca szybkich” – języków zajął lubiany przez wszystkich PHP. W chwili, gdy blog ten pracuje na tym PHP czuję się, publikując te wyniki jak ptak, wiecie co robiący ze swoim gniazdem. No ale cóż – takie są fakty…

PHP 5.5.11 rozwinął zawrotną prędkość trzeciej nadświetlnej i… dobiegł do końca algorytmu w 413.583 sekundy (6 minut, 53 sekundy). Problematyczne w PHP jest to, że na tym języku opiera się większość rozwiązań webowych, które śmigają na większości serwerów w sieci. Wydajność języków programowania a niechlubne, 6 miejsce i wynik – 9.9x wolniejszy od mistrza – stawia pod znakiem zapytania wydajność ogólną języka i aplikacji na nim działających.

The Code

<?php

    $n  =  30000;
    $lp  =  0;
    $p  =  0;
    $t  =  false;
    
    while  ($lp  <  $n)  {
        $t  =  true;
        for  ($d=2;  $d<=$p-1;  $d++)  {
            if  ($p  %  $d  ==  0)  {
$t  =  false;
break;
            }
        }
        
        if  ($t)  {
            echo  $p.",  ";
            $lp++;
        }
        $p++;
    }

?>

 

Podsumowanie

Jak do tej pory nasze zestawienie oparło się o dwa języki skryptowe – PHP oraz Pythona. Różnice, jakie wskazało są gigantyczne. Python okazał się – zgodnie z jedną z książek nt. tego języka, którą miałem szansę przeczytać – że wydajność języków programowania a wydajność Python to dwie różne sprawy! Wynik 57x wolniejszy od zwycięzcy zestawienia wcale, ale to wcale nie napawa chęcią do nauki tego języka.

Zestawienie, jak do tej pory…

Wydajność języków programowania python php

C.D.N.

Pozdrawiam,

M.M.