python_logo

Una de las características nuevas más esperadas en el próximo Python 3.11 (programado para octubre) es un mejor rendimiento. “Python 3.11 es hasta un 10-60 por ciento más rápido que Python 3.10”, afirman las notas de la versión.

¿Cómo se está haciendo esto? Python 3.11 es la primera versión que se beneficia de un proyecto llamado Faster CPython, donde CPython es la versión estándar del intérprete. Faster CPython es un proyecto financiado por Microsoft, cuyos miembros incluyen al inventor de Python Guido van Rossum, el ingeniero de software sénior de Microsoft Eric Snow y Mark Shannon, quien tiene un contrato con Microsoft como líder tecnológico del proyecto.

Una sesión programada para el evento EuroPython que se realizará en Dublín en julio se centra en algunos de los cambios que permiten la aceleración. Shannon describirá el “intérprete especializado adaptativo” en Python 3.11, que es PEP (Python Enhancement Proposal) 659 . Esto describe una técnica llamada especialización que, explica Shannon, "normalmente se realiza en el contexto de un compilador JIT [justo a tiempo], pero la investigación muestra que la especialización en un intérprete puede aumentar significativamente el rendimiento".

El intérprete identifica el código que puede beneficiarse de la especialización y "una vez que una instrucción en un objeto de código se ha ejecutado suficientes veces, esa instrucción se "especializará" reemplazándola con una nueva instrucción que se espera que se ejecute más rápido para esa operación", afirma el ENERGÍA. La aceleración puede ser "hasta un 50 por ciento".Shannon también identifica marcos de ejecución asignados consecutivamente, prueba de excepción de costo cero, diseño de objetos más regular y diccionarios de objetos creados con pereza en su vista previa de la charla.

Cuando Devclass habló con el miembro del Consejo Directivo de Python y desarrollador principal, Pablo Galindo, sobre el nuevo generador de perfiles de memoria Memray, describió cómo el equipo de Python está usando el trabajo de Microsoft en 3.11. “Una de las cosas que estamos haciendo es que estamos haciendo que el intérprete sea más rápido”, dijo, “pero también usará un poco más de memoria, solo un poco, porque la mayoría de estas optimizaciones tienen algún tipo de costo en la memoria. , porque necesitamos almacenar algunas cosas para usarlas más tarde, o porque tenemos una versión optimizada, pero a veces alguien necesita solicitar una versión no optimizada para la depuración, por lo que necesitamos almacenar ambas”.

Galindo explicó cómo la gestión de la memoria es fundamental para el rendimiento. Python “tiene su propio asignador de memoria que no es el asignador del sistema”, dijo. No es porque “sabemos mejor cómo asignar la memoria”, dijo. Más bien, se debe a que el asignador del sistema debe ser genérico, mientras que el intérprete de Python sabe que usará la memoria. Uno de los trucos es reducir el número de llamadas al asignador del sistema a favor de asignar una parte más grande. “Déjame tener una gran parte de la memoria, usaré las diferentes partes y la liberaré de una sola vez cuando termine, porque de lo contrario será muy lento”, dijo.

En respuesta a pruebas de velocidad recientes de Python 3.11, un desarrollador dijo que “este puede ser el primer Python 3 que en realidad será más rápido (alrededor del 5 por ciento) que Python 2.7. Hemos esperado 12 años para esto”.

 

Fuente: devclass | somoslibres

¿Quién está en línea?

Hay 20081 invitados y ningún miembro en línea