what should better best python performance

should - what''s better python 2 or 3



Python 2.x vs 3.x Velocidad (5)

En este momento, la velocidad en Python 3 es más o menos la misma que en Python 2 ... Si buscas velocidad, no está en Python 3 contra Python 2, sino en otras herramientas como Psyco, Cython, etc ...

Pero, recientemente, han surgido planes para fusionar Unladen Swallow, el proyecto de Google para implementar un JIT sobre Python con Python 3. Por supuesto, no será muy pronto, pero, en algún momento, tal vez la velocidad aumentará notablemente en Python 3 sobre Python 2. Afirman que ya han aumentado la velocidad en un 10% (en Python 2). Su objetivo es aumentar la velocidad a 5x.

Para más información, ver PEP 3146

EDITAR: al igual que Brian comenta, PEP 3146 fue retirado.

Soy estudiante de doctorado y uso Python para escribir el código que uso para mi investigación. Mi flujo de trabajo a menudo consiste en hacer un pequeño cambio en el código, ejecutar el programa, ver si los resultados mejoraron y repetir el proceso. Debido a esto, me encuentro pasando más tiempo esperando que se ejecute mi programa que trabajando en él (una experiencia común, lo sé). Actualmente estoy usando la versión más reciente de Python 2 en mi sistema, por lo que mi pregunta es si cambiar a Python 3 me dará alguna mejora de velocidad o no. En este punto, realmente no tengo una razón convincente para moverme a Python 3, así que si las velocidades de ejecución son similares, probablemente me quedo con 2.x. Sé que voy a tener que modificar mi código un poco para que funcione en Python 3, así que no es trivial probarlo en ambas versiones para ver cuál funciona más rápido. Tendría que estar razonablemente seguro de que obtendré una mejora en la velocidad antes de pasar el tiempo actualizando mi código a Python 3.


Intente refinar los algoritmos o cambiar las estructuras de datos utilizadas. Esa suele ser la mejor manera de obtener un aumento en el rendimiento.


No puedo responder la raíz de su pregunta, pero si lee algo sobre el bajo rendimiento del módulo io, ignórelo. Definitivamente, se trata de problemas de rendimiento en Python 3.0, pero se resolvieron en gran medida en Python 3.1.


Tengo un análisis filogenético que demora mucho tiempo en ejecutarse, y usa media docena de scripts de Python, así como otros softwares bioinformáticos (músculo, clúster, explosión, incluso R!). Utilizo archivos temporales para guardar resultados intermedios y un script maestro con el módulo de subproceso para unir todas las piezas. Es fácil cambiar el maestro para ejecutar solo las partes modificadas que quiero probar. Pero, si los cambios se están realizando en los primeros pasos, y usted solo sabe lo bueno que es al final de todo el proceso, entonces esta estrategia no ayudaría mucho.


Este artículo (archive.org) dice que hubo algunos puntos en los que Python 3.0 fue en realidad más lento que Python 2.6, aunque creo que muchos de estos problemas se resolvieron. Dicho esto, Numpy aún no se ha incorporado a Python 3.0 y ahí se esconden muchas de las funcionalidades de alto rendimiento (escritas en c). Esperemos que esté listo a finales de 2009 o principios de 2010.

No debe considerar el rendimiento como una justificación para cambiar a Python 3; No creo que veas una mejora de velocidad constante.

Editar: Las versiones de Numpy que soportan Python 3 ya han sido lanzadas.

Edit2: esta respuesta (y otras respuestas a esta pregunta) están desactualizadas .