Fuente de la imagen: pixabay.com

Cómo hacer que Python sea tan rápido como Psyco

Hola chicos, bienvenidos a mi próximo blog de Python. Pero hoy no hablaré solo de Python rápido. Entonces, antes de continuar, supongo que ya conoce bits y * bytes sobre python. Si eres un principiante, puedes buscar mis otros blogs, aprender sobre python y luego volver a contactarnos. ahora estamos discutiendo el tema Python rápido como Psyco.

Si eres un programador experimentado en otro campo, y crees que conoces los conceptos básicos y ahora puedes leer este blog, entonces solo hazte una pregunta, ¿sabes qué es Psyco? Si en este momento estás pensando que este "Psico" significa loco, entonces, de nuevo, estas cosas no son para ti.

Todavía has evitado muchas cosas básicas o simplemente te estás engañando al decir que eres un programador experimentado. Confía en mí, intentaré hacer que este blog sea lo más fácil posible y trataré de no ofender a nadie. Pero si no tiene los conceptos básicos correctos, será más difícil para usted entender esto.

Dejando a un lado la parte difícil, incluso comienzas a pensar que las cosas rápidas de Python son mucho más difíciles que cualquier otra programación que es absolutamente incorrecta. Así que ahora sabemos qué es qué, vamos a hacerlo, ¿de acuerdo?

¿Qué es psico?

Entonces, ¿qué es Psyco? Psyco hace que Python sea rápido. ¿Confuso? Sí, yo también estaba confundido cuando escuché eso por primera vez. Python ya es rápido, entonces ¿por qué usar psyco? Por eso dije. Este blog no es para novatos y principiantes. Si ha codificado en Python Run durante una buena cantidad de tiempo, creando una gran cantidad de códigos y todo, entonces sabrá que Python Fast necesita una codificación compacta y estricta. Con el tipo de codificación adecuado, puede hacerlo rápido y compacto.

Pero necesita tiempo y esas cosas. No puede crear códigos compactos y sin errores de la nada. Y ahí es donde Psyco surge. Psyco es solo un módulo de extensión rápida de Python que acelera la ejecución de un código de ejecución de Python. Entonces, puede estar confundido en este momento, ¿el módulo hace que un código de Python se ejecute más rápido? Sí, exactamente eso es lo que es. Vayamos al panorama general.

Python y su verdadera naturaleza

Si ha codificado en Java o C anteriormente, puede pensar que Python Run es extremadamente rápido que los demás. Pero ahí es donde te equivocas. En términos de rendimiento bruto, python es definitivamente más lento que C, Java o C #. Pero Python no es conocido por tener velocidad en el rendimiento bruto.

Solo los principiantes o novatos hacen codificación cruda. Las personas profesionales hacen la codificación adecuada junto con las muescas adecuadas *. Cuando compara un código compilado correctamente y mide el uso total de memoria, el tiempo de inicio inicial, el tiempo de carga, luego, en ese momento, la ejecución de Python es extremadamente rápida.

Además, si está intentando escribir códigos para crear un servidor o cosas así, Java es extremadamente rápido, incluso más rápido que C. Esto es posible ya que la Máquina virtual Java puede compilar código de bytes en caliente para el código de la máquina. Al hacer esto, puede aprovechar al máximo todas y cada una de las características de la CPU.

Este no suele ser el caso con C, al menos hasta que abandonas el entorno de tu laboratorio. Ahora solo asuma, distribuir una docena de compilaciones optimizadas a sus clientes, eso simplemente no funcionará.

Entonces, volvamos a nuestro punto principal si el tiempo de inicio es un problema (que no es un problema para una aplicación de servidor, por ejemplo) Java podría no ser la mejor alternativa. También puede depender de dónde están sus áreas de código activo, por ejemplo: si están dentro de las bibliotecas nativas con algún código rápido de Python para simplemente pegarlas, también podrá obtener un rendimiento similar a C con Python rápido. Pero aún así, los lenguajes de script tenderán a ser más lentos, al menos la mayor parte del tiempo.

Cursos recomendados

  • Curso en línea de VB.NET
  • Capacitación de certificación en línea en ciencia de datos
  • Curso profesional de ISTQB
  • Programa Kali Linux

Psico: es exactamente como suena

Sí, leíste eso bien. Ahora, volvamos a nuestro tema principal. Ahora, esto es lo que los desarrolladores de psico definen en su página web:

“Piense en Psyco como una especie de compilador justo a tiempo (JIT), un poco como lo que existe para otros idiomas, que emite código de máquina sobre la marcha en lugar de interpretar su programa Python paso a paso. La diferencia con el enfoque tradicional de los compiladores JIT es que Psyco escribe varias versiones de los mismos bloques (un bloque es una función), que se optimizan al especializarse en algunos tipos de variables (un "tipo" puede significar un tipo, pero es más general). El resultado es que sus programas Python no modificados se ejecutan más rápido.

Aceleraciones de 2x a 100x, típicamente 4x, con un intérprete de Python no modificado y un código fuente no modificado, solo un módulo de extensión C cargable dinámicamente ".

En resumen, para reformular esto en una declaración simple, Psyco le dará más rendimiento similar a Java. Obtendrá tiempos de inicio más lentos y un mayor uso de memoria a cambio de algoritmos más rápidos.

Dicho esto, hay ciertas cosas que uno debe recordar al probar lenguajes como Java y Python. El código en estos idiomas a menudo se puede acelerar significativamente mediante el uso de construcciones más adecuadas para el lenguaje (por ejemplo, listas de comprensión en Python rápido, o usando char () y String Builder para ciertas operaciones de cadenas en Java).

Además, para Python rápido, el uso de Psyco puede aumentar enormemente la velocidad del programa. Y luego está el problema de usar las estructuras de datos apropiadas y vigilar la complejidad del tiempo de ejecución de su código.

Para entender python psyco, uno necesita tener una buena comprensión de la función eval_frame () de python. Lo que hace python psyco es convertir la función eval_frame de python en una unidad de evaluación compuesta, y psyco usa mucha memoria al hacer esto. Usar psyco es mucho más fácil que explicarlo.

Para usar simplemente psyco, descargue el módulo psyco de sourceforge.net y luego guarde este código al comienzo de su primer código:

import psyco ; psyco.jit()

from psyco.classes import *

Y luego, puede usar el siguiente comando para enfocarse en el comportamiento de psyco con mayor precisión:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Si estas cosas no funcionan contigo al principio, entonces debes ser paciente. Requiere prueba y error. No puede esperar directamente que su programa se ejecute como Usain Bolt. Ahórreme el comportamiento grosero sarcástico, pero así es como funciona.

En realidad, python psyco no cambia ni modifica su código para hacerlo más inteligente. Difícilmente perfila su código para ser más específico. Hace una optimización mínima para que esté lo más cerca posible del código de máquina.

Aunque python psyco hace que sus programas sean tan rápidos como C, existen algunas limitaciones y desventajas para ellos. Los siguientes son algunos, que he enumerado a continuación:

  1. Psyco ahora está en desuso, sin mantenimiento y muerto. El reemplazo es PyPy
  2. Psyco tiene muchos problemas incluso con Python 2.7. Pero funciona mucho mejor y más rápido en v2.5
  3. Psyco no funciona en máquinas de 64 bits. Pero uno puede instalar una máquina virtual con arquitectura i386 y hacer que funcione.
  4. Mac OSX viene por defecto con python de 64 bits. Necesitará recompilar python x86 desde la fuente para que Psyco funcione.

A pesar de tener tantos problemas, las personas aún usan Psyco en lugar de PyPy. Pero de nuevo, si me preguntas, PyPy es una increíble alternativa a Psyco. Psyco funciona como un compilador Just In Time, pero PyPy tiene un compilador Just in time propio. Donde Psyco usa mucha memoria, PyPy usa mucha menos memoria que Psyco. PyPy es aún más compatible con frameworks como Django y Twisted.

Entonces, después de todo esto, no importa lo que diga, es para nuestro propio uso. Las personas con antecedentes de Psyco siempre le sugerirán que use Psyco, mientras que las personas que desean velocidad necesitarían PyPy. Pero déjame citar algo.

“Aunque te sientes lo suficientemente bien con motocicletas como R1 o Hayabusa, a veces conducir una Harley Davidson tiene su propio placer”

Funciona de la misma manera con Psyco y PyPy. Entonces, al final, sin mucho ruido, lo que sugeriría es usar ambos al principio, y luego continuar con lo que se sienta más cómodo.

Artículos recomendados:

Aquí hay algunos artículos que lo ayudarán a obtener más detalles sobre Python Fast y python psyco, así que solo vaya al enlace.

  1. Linux vs Ubuntu-Diferencias
  2. Las 25 preguntas y respuestas más sorprendentes de la entrevista de Python
  3. Carrera profesional en Python
  4. Python vs Node.js
  5. Guía útil para Kali Linux vs Ubuntu
  6. Lista de compiladores de Python