Eu tenho comparado o Pi em alguns dos meus códigos de simulação, em relação a alguns laptops que eu tenho. Meus códigos tendem a ser intensivos em ponto flutuante, então eu tenho usado o Raspbian (que acaba sendo muito mais rápido) devido ao seu suporte a hard-float. Eu tenho o mesmo código simples em vários idiomas diferentes. Obviamente, o código python é mais lento que o código C, independentemente da plataforma que eu use, mas no Pi parece ser relativamente mais lento, com um fator em torno de 3. Alguém sabe por que o interpretador python provavelmente é relativamente lento no Pi e isso é algo que provavelmente será corrigido?
Aqui está o teste:
import random,math
def gibbs(N=50000,thin=1000):
x=0
y=0
print "Iter x y"
for i in range(N):
for j in range(thin):
x=random.gammavariate(3,1.0/(y*y+4))
y=random.gauss(1.0/(x+1),1.0/math.sqrt(2*x+2))
print i,x,y
gibbs()
A partir deste post no blog sobre a experiência.
performance
python
hard-float
raspbian
Darren Wilkinson
fonte
fonte
Respostas:
Eu acho que o interpretador Python simplesmente não é otimizado para o ARM. O Python pode ter sido otimizado para as outras plataformas. Na minha experiência, isso é verdade para softwares como o OpenSSH, então suponho que seja semelhante ao Python.
fonte
O Python provavelmente sofre com a falta de cache da CPU. Não sei ao certo como você pode medir isso com facilidade.
fonte