loop en python3 mucho más lento que python2
python-3.x lua (1)
Mi proyecto implica un pesado bucle sobre stocks y cálculos estadísticos. Fue escrito en python3. A medida que los datos crecen, creo que el rendimiento del script es bastante lento. Intenté con lua debido a su fama de velocidad e intenté hacer algunas pruebas de la siguiente manera, también en comparación con python2 como punto de referencia.
Solo un bucle simple como código de prueba:
versión lua
for i=1,100,1 do
for j=1,100,1 do
print(i*j)
end
end
versión de python
for i in range(1,101):
for j in range(1,101):
print(i*j)
los resultados son los siguientes (intenté un tiempo y escogí lo mejor para cada grupo):
lua5.2.3: 0.461sec
python2.7.6: 0.429sec
python3.4: 0.85sec
Lo que me sorprendió es que python2 es aproximadamente 2 veces más rápido que python3.
¿Por qué? e incluso con un simple bucle?
Pensé que python3 es el futuro de python, así que aprendí python3 desde el principio.
¿Realmente necesito exportar mi código a python2, o cualquier modificación que pueda con bucles para mejorar su rendimiento en python3?
He aumentado tus bucles y deshabilitado la salida (es mucho más lento cuando se muestra).
Y no soy un experto en pitones. Pero puede acelerar su código python con el compilador jit pypy, por ej. (Pero aún más lento que luajit). Además, este tema sobre python3 y python2 podría ser interesante para usted también.
pitón
r=0
for i in range(1,10000):
for j in range(1,10000):
r=i*j
python3
$ time python3 loop.py
real 0m16.612s
user 0m16.610s
sys 0m0.000s
python2
$ time python2 loop.py
real 0m11.218s
user 0m11.190s
sys 0m0.007s
pypy
$ time pypy loop.py
real 0m0.923s
user 0m0.900s
sys 0m0.020s
lua
local r=0
for i=1,10000,1 do
for j=1,10000,1 do
r=i*j
end
end
lua 5.2.3
$ time lua loop.lua
real 0m1.123s
user 0m1.120s
sys 0m0.000s
luajit
$ time luajit loop.lua
real 0m0.074s
user 0m0.073s
sys 0m0.000s