[pyar] Incrementar velocidad de carga Wxpython

Marcelo Fernandez marcelo.fidel.fernandez en gmail.com
Mie Jul 31 11:53:21 ART 2013


Hola Germán,

El 30 de julio de 2013 20:41, German Jimenez
<germanjimenez84 en gmail.com> escribió:
>
>> Tratá de pasar lo más grueso a código python y fijate si notás mejora
>> significativa, es muy probable que sea eso.
>
>
> Si, algo mejoró, gracias. Ahora estoy considerando algo diferente, al lanzar
> la aplicación por primera vez en la sesión de usuario del SO, ésta (la app)
> tiene demora; luego al lanzarla por segunda o mas veces, el inicio de la
> aplicación es muchísimo mas rápido.
> ¿Esto se deberá al SO, al intérprete, a la aplicación o al empaquetado de
> py2exe?
>
> A lo mejor atacando alguno de estos termino dando el tiempo de carga óptimo.

Veo que hay muchos factores en tu toolchain y estás midiendo todo
junto. Vamos a asumir que tu app no hace nada al arrancar y no voy a
considerar eso.

Py2Exe es un empaquetador y agrega un overhead que puede ser
importante en cada arranque, ya que adentro del .exe mete el
intérprete de Python, las dependencias de tu programa y tu programa,
con los recursos incluso (o no). En cada ejecución se descomprime todo
y recién después se ejecuta. No se compila nada a código nativo, de
hecho.

Como todo esto es un stack de programas + bibliotecas aislado de lo
que puede traer el SO, éste no tiene precargado nada en memoria, y las
bibliotecas de enlazado dinámico debe cargarlas y enlazarlas de cero
(me he visto embebiendo algunos DLLs tan básicos como los msvcrt*
adentro del py2exe para que la app funcione *siempre*).

Vos ves que funciona "mucho más rápido" porque ahí la caché de disco
juega un factor fundamental (son todos "hits" de acceso), pero todo lo
que te expliqué antes sigue pasando en cada ejecución.

En resumen, el tiempo de arranque "en frío" es muy difícil de bajar
bajo estas condiciones, quizá haya algún software que en el inicio del
equipo haga una precarga del .exe en RAM o en la caché de disco, pero
no sé tanto de Windows.

Saludos
-- 
Marcelo F. Fernández
Buenos Aires, Argentina
Lic. en Sistemas de Información

E-Mail: marcelo.fidel.fernandez en gmail.com
Blog: http://blog.marcelofernandez.info
Twitter: http://twitter.com/fidelfernandez


More information about the pyar mailing list