Python 2.7 o Python 3 (para velocidad)?

He mirado alrededor buscando respuestas y mucho parece estar viejo o desactualizado. ¿Se ha actualizado Python 3 todavía, de modo que sea bastante más rápido que Python 2.7 o todavía estoy mejor si me quedo con mi código viable?

El problema no tiene que ver con la velocidad: son la misma velocidad o Python 3.x es más rápido (dependiendo de los puntos de referencia que mire). Más específicamente, Python 2 solía ser más rápido, pero al parecer, ahora están a la par uno con el otro (?). Ver los comentarios y este deck de diapositivas (hacia la parte posterior).

Los desarrolladores principales también están trabajando activamente en la optimización de Python 3: cada nueva versión de Python 3 ha sido más rápida que la anterior . Puede mantenerse al tanto de las últimas propuestas e ideas sobre la optimización de Python (así como las muchas complicaciones) al monitorear la lista de correo de python-dev .

Más bien, la razón por la que muchas personas solían donar para no actualizarse es porque cuando Python 3 salió y, varios años después, la mayoría de las bibliotecas de Python no estaban actualizadas para funcionar en Python 3.x. Sin embargo, afortunadamente, esta situación ha mejorado enormemente hoy en día: la mayoría de las bibliotecas de terceros ahora son compatibles con Python 3.

Las preguntas frecuentes de Python contienen más información. También puede consultar el Python Wall of Superpowers o Py3 Readiness para obtener una descripción general de las bibliotecas de Python que son actualmente compatibles con Python 3.

Actualización: (verano 2017)

Me siento algo obligado a notar que el soporte para Python 2 está terminando formalmente en 2020 .

Muchas bibliotecas de terceros también planean seguir su ejemplo: un gran subconjunto del ecosistema científico (por ejemplo, matplotlib, pandas, ipython) planea dejar de ofrecer soporte para Python 2 en 2020 , Django está dejando de recibir soporte … No estaría Sorprende si otras bibliotecas hacen lo mismo.

Por lo tanto, si está interesado en asegurarse de que puede usar las funciones más recientes y mejores de Python o de su biblioteca favorita, debería comenzar a migrar a Python 3 más temprano que tarde.

Aquí hay algunas guías para convertir código Python 2 a 3:

Para su información, aquí hay una prueba de rendimiento que compara Python 2.7 con Python 3.3. Python 3.3 viene más rápido que Python 2.7.

Python 3.3 incluyó una optimización para cadenas de Unicode que redujo su consumo de memoria. Eso podría traducirse en un código más rápido si más de eso cabe en el caché.

Realmente, la única forma de saberlo es comparar su código más crítico en ambos y ver cuál es la diferencia.

La necesidad de bibliotecas para sus aplicaciones determinará si Python3 o Pyhton2 son mejores.