Saturacion de informacion yt ultima pregunta de momento
Francesc Alted
falted en pytables.org
Jue Oct 7 11:11:39 CEST 2004
A Dimecres 06 Octubre 2004 22:33, Joseba va escriure:
> mi sigiente pregunta es un poco retorcida, python es un lenguage
> interpretado, una especie de gion que lee el interprete antes de
> pasarselo a la maquina. Sabemos que eso supone ciertas ventajas, pero el
> tiempo de ejecucion en programas de cierto tamaño se resiente. ¿existen
> compiladores de python? he visto en sourceforge el programa pytoexe, que
> transforma pyton en binarios windows, ¿existe algo similar para linux?
> ¿es eficiente el codigo maquina asi generado, en comparacion con, por
> ejemplo, el c? ¿el mismo programa en lenguages diferentes genera codigo
> maquina diferente?
Normalmente, cuando se quiere velocidad en Python hay que recurrir a enlazar
con código en C (o Fortran, o cualquier otro lenguaje compilado). SWIG [3],
Boost [2] y Pyrex [3] son todos excelentes opciones para enlazar con C.
SIN EMBARGO, antes de recurrir a esto, empápate todavia más de información
sobre Python, y en particular sobre su libreria estándard (batteries
included, remember :). Ahi hay mucho ya hecho que está en C y si es así, se
suele indicar en la documentación. Si esto no es suficiente, entonces mira
librerias para entornos de cálculo numérico: SciPy [4], Numeric [5],
numarray [6]. Hay muchísimas otras librerias para Python y optimizadas en C
ya disponibles en la red (para XML, imágenes, criptografía, ...). En este
caso, Google es tu mejor aliado. Si dispones de plataforma Intel, prueba
también con psyco [7].
Y si esto no es suficiente, entonces pasa a los enlaces con código C que he
mencionado al principio.
[1] http://www.swig.org/
[2] http://www.boost.org/
[3] http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ (parece que no
funciona?)
[4] http://www.scipy.org
[5] http://numpy.sf.net
[6] http://www.stsci.edu/resources/software_hardware/numarray
[7] http://psyco.sourceforge.net/
Saludos,
--
Francesc Alted
Más información sobre la lista de distribución Python-es