Dudas iniciales

Fco. Javier Félix fran en imagenes3d.com
Mie Mayo 5 23:20:47 CEST 2004


El mié, 05-05-2004 a las 10:51, +0200, Andres Moya escribió:
> El mié, 05-05-2004 a las 00:16, Fco. Javier Félix escribió:
> > Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par
> > hacer los scripts, pero un amigo me convenció para que lo probase y
> > desde luego no me ha defraudado lo que he visto por el momento. Pero
> > tengo unas dudas como cualquiera que empieza.
> 
> Bienvenido al club, está claro que Python es un lenguaje que gusta a los
> que lo prueban. Y estás en el sitio más apropiado para resolver tus
> dudas :)
> 

Eso me han comentado!

> 
> > 1º He visto que existe un compilador, como se usa?, que diferencia hay
> > entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad
> > ofrece? 
> 
> Veamos, hay varios conceptos mezclados aquí. Vayamos por partes.
> 
> 1) Python en realidad no es un lenguaje interpretado (como podía ser el
> Basic). Lo que es es un lenguaje con máquina virtual, igual que Java.
> Esto significa que el código fuente se compila, y se genera código
> máquina, pero en vez de ser el de un procesador real como puede ser el
> Pentium, lo genera para uno imaginario. Y luego hay un "runtime" que
> interpreta (ahora sí) ese código máquina sobre cualquier procesador
> real.
> 
> 2) Lo anterior es transparente porque el entorno de python compila y
> ejecuta con un sólo paso. Cuando escribes "python miscript.py", el
> programa primero lee miscript.py, lo compila y genera miscript.pyc, que
> es un ejecutable de la máquina virtual. A continuación lo lee y lo
> ejecuta. Las siguientes veces, si ya está creado el .pyc, no hace falta
> compilarlo otra vez.
> 
Forma original y efectiva de trabajar, como diria un profesor mio ,
curioso , curioso

> 3) Si lo llamas con "python -O miscript.py", en vez del .pyc genera un
> .pyo, que es lo mismo, pero optimizado para que vaya más rápido y ocupe
> menos.
> 
> 4) Hay varios compiladores que generan código máquina real, pero
> entonces se pierde la independencia de la plataforma. Por ejemplo, creo
> que hay uno que le pasas miscript.py y te genera miscript.c, que puede
> ser compilado con un compilador C normal y generar un .exe.
> 
Todo depende de para que se destine el resultado, puede que necesites
que no se vea el source o necesitas un pelin mas de velocidad, siempre
estaria la opcion de volverlo a compilar para las diferentes
arquitecturas.

> 5) Esto mejora el rendimiento, pero no se suele usar mucho, lo más
> típico es mezclar python con código C para las partes más críticas, o
> usar un compilador especial como pyco, que optimiza el código máquina
> virtual para que vaya mucho más rápido (de 2x a 100x, típicamente 4x), a
> cambio de ocupar más memoria.
> 

Lo probare, eso de por 100x solia decirlo mucho microsoft, pero siempre
es por 2.5 a lo sumo, o 0.1 en algunos casos. 


> -- 
> Andres Moya <Andres.Moya en hispalinux.es>
> 
> Contra la guerra global permanente.
> Foro Social Mundial - Otro mundo es posible.
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es