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

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

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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

La amenaza de la desinformación climática propagada por la tecnología de IA generativa

Explora cómo la IA generativa puede propagar información errónea sobre el clima y aprende estrategias efectivas para ...

Inteligencia Artificial

Los gemelos digitales pueden permitir el tratamiento de salud personalizado

Combinar datos sobre el cuerpo humano con los datos personales de los pacientes para crear gemelos digitales de sus ó...

Inteligencia Artificial

Últimos avances en el campo de la IA multimodal (ChatGPT + DALLE 3) + (Google BARD + extensiones) y muchos más…

La IA multimodal es un campo de la Inteligencia Artificial (IA) que combina diferentes tipos de datos (modalidades), ...

Inteligencia Artificial

La IA y los implantes cerebrales restauran el movimiento y la sensación para un hombre paralizado

En un logro médico innovador, médicos en Estados Unidos han aprovechado el poder de la Inteligencia Artificial (IA) y...

Inteligencia Artificial

Microsoft AI propone MM-REACT un paradigma del sistema que combina ChatGPT y expertos en visión para un razonamiento y acción multimodal avanzados.

Los Grandes Modelos de Lenguaje (LLMs) están avanzando rápidamente y contribuyendo a transformaciones económicas y so...

Inteligencia Artificial

Tiempo 100 IA ¿Los más influyentes?

La revista Time acaba de publicar su lista Time 100 AI, destacando a 100 figuras clave en IA en categorías como líder...