Potencia tu código en Python con extensiones de Rust
Potencia tu código en Python con Rust
Aumentar la velocidad por órdenes de magnitud y mejorar la seguridad del código
![Imagen del autor, generada utilizando DALLE](https://miro.medium.com/v2/resize:fit:640/format:webp/1*gmmP0jD0WOEzmbYtb-uMQw.png)
Como la mayoría de ustedes ya saben, Python es un lenguaje de programación de propósito general optimizado para la simplicidad y facilidad de uso. Si bien es una gran herramienta para tareas ligeras, la velocidad de ejecución del código puede convertirse rápidamente en un gran obstáculo en sus programas.
En este artículo, discutiremos por qué Python es tan lento en comparación con otros lenguajes de programación. Luego, veremos cómo escribir una extensión básica de Rust para Python y compararemos su rendimiento con una implementación nativa de Python.
Por qué Python es lento
Antes de comenzar, me gustaría señalar que los lenguajes de programación no son inherentemente rápidos o lentos: sus implementaciones lo son. Si quieres aprender sobre la diferencia entre un lenguaje y su implementación, consulta este artículo:
El mito del lenguaje de programación más rápido
Un concepto erróneo común en la programación que debe ser erradicado
betterprogramming.pub
- Araucana XAI Explicabilidad Local con Árboles de Decisión para la Salud
- Revisión de Pictory (julio de 2023) ¿El mejor generador de video de IA?
- Kevin Baragona, Co-Fundador y CEO de DeepAI – Serie de Entrevistas
En primer lugar, Python es de tipado dinámico, lo que significa que los tipos de variables solo se conocen en tiempo de ejecución, y no en tiempo de compilación. Si bien esta elección de diseño permite un código más flexible, el intérprete de Python no puede hacer suposiciones sobre qué son sus variables y su tamaño. Como resultado, no puede realizar optimizaciones como lo haría un compilador estático.
Otra elección de diseño que hace que Python sea más lento que otras alternativas es el infame GIL (Global Interpreter Lock). El GIL es un bloqueo de mutex que permite que solo un hilo se ejecute en un momento dado. El GIL originalmente se creó para garantizar la seguridad de los hilos, pero ha encontrado una gran resistencia por parte de los desarrolladores de aplicaciones con subprocesos múltiples.
Además, el código de Python se ejecuta a través de una máquina virtual en lugar de ejecutarse directamente en la CPU. Esta capa adicional de abstracción agrega una sobrecarga significativa de ejecución en comparación con los lenguajes compilados estáticamente.
Además, los objetos de Python se tratan internamente como diccionarios (o hashmaps) y sus atributos (propiedades y métodos, accesibles mediante el operador punto) generalmente no se acceden a través de un desplazamiento de memoria, sino…
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Un novedoso modelo de aprendizaje automático acelera la evaluación de catalizadores de descarbonización de meses a milisegundos
- Un estudio encuentra que ChatGPT aumenta la productividad de los trabajadores en algunas tareas de escritura
- Tutorial de Docker para Científicos de Datos
- Desbloquea el éxito de DataOps con DataOps.live – ¡Destacado en la Guía de Mercado de Gartner!
- La cirugía cerebral impulsada por IA se convierte en una realidad en Hong Kong
- Conoce FlexGen un motor de generación de alto rendimiento para ejecutar grandes modelos de lenguaje (LLM) con memoria limitada de GPU.
- Este artículo de IA presenta una novedosa clase de objetivos sin simulación para el aprendizaje de modelos generativos estocásticos en tiempo continuo entre distribuciones generales de origen y destino.