2008-10-04 15 views

Respuesta

28

3.0 es más lento que 2.5 en los puntos de referencia oficiales. De "What’s New in Python 3.0":

El resultado neto de las 3.0 generalizaciones es que Python 3.0 se ejecuta el punto de referencia pystone alrededor de 10% más lento que Python 2.5. Lo más probable es que la causa principal sea la eliminación de la cubierta especial para enteros pequeños. ¡Hay margen de mejora, pero sucederá después de que se haya lanzado 3.0!

+1

Esto sigue siendo cierto en 2015, si el código en cuestión tiene muchas operaciones de cadena, Python 2.7 es generalmente más rápido que Python 3.5, a partir de noviembre de 2015. –

6

Diría que cualquier diferencia estará por debajo de lo trivial. Por ejemplo, pasar por encima de una lista será exactamente el mismo.

La idea detrás de Python 3 es limpiar la sintaxis del lenguaje en sí misma - eliminar cosas ambiguas como except Exception1, Exception2, limpiar los módulos estándar (no urllib, urllib2, httplib, etc.).

Realmente no hay mucho que pueda hacer para mejorar su rendimiento, aunque imagino cosas como la recolección de basura y el código de administración de memoria habrán tenido algunos ajustes, pero no va a ser un "wow, la generación de estadísticas de mi base de datos el código se completa en la mitad del tiempo! " mejora, ¡eso es algo que obtienes al mejorar el código, en lugar del lenguaje!

Realmente, el rendimiento del lenguaje es irrelevante, todos los idiomas interpretados básicamente funcionan a la misma velocidad. Por qué Python me parece "más rápido" son todas las moules incorporadas, y la sintaxis agradable de escribir, algo que tiene mejorado en Python3, así que supongo que en esos términos sí, el rendimiento de python3 es mejor que python2 .x ..

+3

"todos los idiomas interpretados funcionan básicamente a la misma velocidad" no es cierto. Las rutas del código interpretadas se pueden compilar hasta el código nativo, consulte los recientes competidores de Javascript VM. –

+4

que no significa nada sobre el lenguaje, sino los compiladores escritos para él. Usted * podría * tener un compilador de Python y sería más o menos tan rápido como uno de JavaScript. – gbjbaanb

0

No lo hago si es más rápido ahora, pero tengo que esperar que finalmente sea así porque allí es donde se realizará el nuevo trabajo de rendimiento y no todo será retroalimentado.

3

A menos que haya planes para una nueva VM de algún tipo (y no he oído hablar de tales planes), hay razones para creer que, a largo plazo, el rendimiento de Py3K, al menos asintóticamente, igual a 2.5

Puede tomar unos meses, pero eventualmente ocurrirá, ya que ninguna de las nuevas características de Py3k es inherentemente menos eficiente.

Para concluir, no creo que haya lugar para preocuparse. Ni para esperar una mejoría importante de algún tipo.

+0

(Actualización 30.03.2010): Esta respuesta no es muy relevante hoy, dado que unladen-swallow se fusionará en Python 3 y proporcionará aceleraciones notables. Para ser justos, este * es * un nuevo VM :-) –

4

Creo que finalmente es demasiado pronto para hacer ese tipo de comparación. Espere hasta que se salga de la versión beta antes de realizar una evaluación comparativa. El intérprete probablemente será pulido enormemente antes del lanzamiento, pero en general creo que para la mayoría de los usos el rendimiento sería comparable y si está ejecutando una aplicación realmente consciente de la velocidad, ¿es python realmente el lenguaje correcto para usar?

5

La biblioteca de IO ha sido completamente rediseñada, y la nueva implementación está en Python puro. Si bien esta es una mejora funcional, en este momento es mucho más lenta. Se está trabajando para reescribir la mayor parte del nuevo sistema en C. Para detalles, ver thesebugreports.

Cuestiones relacionadas