Perl, Java, C++ veya Haskell de değildir. Diğer dillerin Python'da nasıl gerçeklendiği ile ilgili bilginizi aktarırken dikkatli olun. Basit bir örnek bunu göstermektedir:
% timeit.py -s 'x = 47' 'x * 2'
1000000 loops, best of 3: 0.574 usec per loop
% timeit.py -s 'x = 47' 'x << 1'
1000000 loops, best of 3: 0.524 usec per loop
% timeit.py -s 'x = 47' 'x + x'
1000000 loops, best of 3: 0.382 usec per loop
|
Şimdi de benzer C koduna bakın (sadece toplama kısmı gösterildi):
#include <stdio.h>
int main (int argc, char **argv) {
int i = 47;
int loop;
for (loop=0; loop<500000000; loop++)
i + i;
}
|
ve çalışma zamanları şu şekildedir:
% for prog in mult add shift ; do
< for i in 1 2 3 ; do
< echo -n "$prog: "
< /usr/bin/time ./$prog
< done
< echo
< done
mult: 6.12 real 5.64 user 0.01 sys
mult: 6.08 real 5.50 user 0.04 sys
mult: 6.10 real 5.45 user 0.03 sys
add: 6.07 real 5.54 user 0.00 sys
add: 6.08 real 5.60 user 0.00 sys
add: 6.07 real 5.58 user 0.01 sys
shift: 6.09 real 5.55 user 0.01 sys
shift: 6.10 real 5.62 user 0.01 sys
shift: 6.06 real 5.50 user 0.01 sys
|
Python içerisinde bir sayıyı kendisi ile toplamanın onu iki ile çarpmak veya bir bit sola kaydırmaktan daha avantajlı olduğuna dikkat edin. C içerisinde, tüm modern mimarilerde, tüm bu üç aritmetik işlem bir çevrimde gerçeklenecek olan makine dili komutlarına dönüştürülür, dolayısi ile hangisini kullandığınız pek önemli değildi.
Yeni Python programcılarının bu aralarki genel testleri Perl yaklaşımını tercüme etmektir:
Python içerisinde bu kod şu şekilde gözükür:
import fileinput
for line in fileinput.input():
print line,
|
Buna bakarak Python'un Perl'den daha yavaş olacağı sonucunu çıkarırlar. Diğerlerinin defalarca belirttiği gibi bazı durumlarda Python Perl'e göre daha yavaş fakat bazılarına göre ise daha hızlı olmaktadır. Bağıl hız genelde bu iki dil ile olan tecrübenize bağlıdır.