J'ai comparé le Pi sur certains de mes codes de simulation, par rapport à quelques ordinateurs portables que j'ai. Mes codes ont tendance à être intensifs en virgule flottante, donc j'utilise Raspbian (qui s'avère beaucoup plus rapide) en raison de son support flottant. J'ai le même code simple dans plusieurs langues différentes. De toute évidence, le code python est plus lent que le code C quelle que soit la plateforme que j'utilise, mais sur le Pi, il semble être relativement plus lent, par un facteur d'environ 3. Est-ce que quelqu'un sait pourquoi l'interpréteur python est susceptible d'être relativement lent sur le Pi, et est-ce quelque chose qui est susceptible d'être corrigé?
Voici le test:
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()
De ce billet de blog sur l'expérience.
performance
python
hard-float
raspbian
Darren Wilkinson
la source
la source
Réponses:
Je suppose que l'interpréteur Python n'est tout simplement pas optimisé pour ARM. Python pourrait avoir été optimisé pour les autres plates-formes. D'après mon expérience, cela est vrai pour des logiciels comme OpenSSH, donc je suppose que c'est similaire pour Python.
la source
Python souffre probablement d'un manque de cache cpu. Je ne sais pas comment vous pouvez mesurer cela facilement
la source