Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 24 Diciembre 2012, 10:42 am



Título: ¿Técnicas para mejorar el inicio de una aplicación?
Publicado por: Eleкtro en 24 Diciembre 2012, 10:42 am
¿Que "trucos" puedo realizar para que mi APP se ejecute más rápido?

¿Podría mejorar la velocidad por ejemplo desactivando el "DoubleBuffered" del form o desactivando los estilos visuales de XP, o quizás usando una versión inferior del framework?

Conozco la existencia de NGEN, pero aparte de que no noto mejora alguna, busco otro tipo de métodos dentro de la IDE, no ejecutando software de terceros.

Un saludo!


Título: Re: ¿Técnicas para mejorar el inicio de una aplicación?
Publicado por: spiritdead en 24 Diciembre 2012, 11:37 am
¿Que "trucos" puedo realizar para que mi APP se ejecute más rápido?

¿Podría mejorar la velocidad por ejemplo desactivando el "DoubleBuffered" del form o desactivando los estilos visuales de XP, o quizás usando una versión inferior del framework?

Conozco la existencia de NGEN, pero aparte de que no noto mejora alguna, busco otro tipo de métodos dentro de la IDE, no ejecutando software de terceros.

Un saludo!
depende de tu formload :)

si tienes ciclos que tardan mucho tiempo podria relentizar el inicio

etc


Título: Re: ¿Técnicas para mejorar el inicio de una aplicación?
Publicado por: Keyen Night en 25 Diciembre 2012, 05:11 am
Hace poco casualmente me puse a cronometrar los tiempos de inicio de algunas de mis aplicaciones y a probar formas de que inicie más rápido, porque en verdad, mientras más grande es la aplicación más cosas debes de iniciar y cargar y más tiempo te consumes en el inicio. Al final encontré algunas soluciones:

Las cosas generales las puedes pasar al StartUp de ApplicationEvents, las más esenciales de las cuales necesitas estrictamente para iniciar no las toques, y las otras que pueden esperar algunas segundos las puedes pasar a unos Thread con IsBrackground en True y Priority en Hight, haciendo uso de delegados para comunicarte con los controles, ya que el usuario no va a utilizar el programa inmediatamente, siempre pierde tiempo en configuraciones y opciones antes de ir a lo que hace el programa, ese tiempo lo puedes utilizar para cargar lo que necesites por debajo por medio de dichos Threads.

Trata de ver bien lo que colocas en el Load, es difícil exponerte todas las situaciones que pueden retrasar el inicio, pero te doy un ejemplo sencillo, imagina que buscamos un archivo de configuración en una carpeta que posee un valor X, si estamos recorriendo todos los archivos de configuración, leyéndolos y comprobando los valores para encontrar el que necesitamos, una vez que lo encontremos podemos cortar el bucle para ahorrar tiempo, en vez de dejar que el bucle continué perdiendo tiempo de ejecución que podría utilizar otro método.

Puedes publicar el código del Load para ver en que te podemos ayudar.


Título: Re: ¿Técnicas para mejorar el inicio de una aplicación?
Publicado por: seba123neo en 26 Diciembre 2012, 14:06 pm
una aplicacion no tiene que tardar mucho en iniciar sino el usuario se pudre, es como en las paginas webs, si no carga en determinado tiempo la pagina el usuario se cansa y abandona la web.

depente de lo que haga la aplicacion, por ejemplo aplicaciones como photoshop que cargan miles de modulos al inicio no tarda mas que unos segundos al iniciar (igual no esta en VB).

una aplicacion normal deberia tardar 2 o 3 segundos en realizar los chequeos al iniciar, desde que hizo click para abrirla.



Título: Re: ¿Técnicas para mejorar el inicio de una aplicación?
Publicado por: Eleкtro en 26 Diciembre 2012, 16:27 pm
Gracias por vuestra información!

Mi app tarda unos 5-10 segundos en cargar la primera vez :(, si la cierro y la vuelvo a abrir enseguida pues obviamente tarda 2-3 segundos, pero la primera vez en cargar le cuesta demasiado, y no hago casi ningun checkeo al inicio, me pondré  ainvestigar y si eso postearé el form load a ver que encuentran...






[OFFTOPIC]


por ejemplo aplicaciones como photoshop que cargan miles de modulos al inicio no tarda mas que unos segundos al iniciar

Es muy discutible ese punto,
Si añades cientos de pinceles personalizados, texturas, colores, estilos, etc, te aseguro que el photoshop tardará varios minutos en iniciarse TODAS las veces, y los menúes de los pinceles se ralentizaN taaaanto!...
Está muy Mal programado en ese aspecto (Yo no sé hacerlo mejor, pero está mal hecho), debería cargarlos la primera vez y olvidarse de tener que testear todos los pinceles cada vez que se abre photoshop, o como mínimo poner una opción para que el usuario pueda decidir, porque los profesionales del diseño, los que tienen más de 2000-5000 pinceles no se como pueden vivir con Photoshop, es insufrible cuando lo cargas un poco.
Ojo, y hablo de un photoshop sin estar muy sobrecargado con menos de 500 pinceles.

Es el peor punto de photoshop, el tiempo de carga de elementos personalizados, y cansa, sí...

Un saludo

[/OFFTOPIC]



Título: Re: ¿Técnicas para mejorar el inicio de una aplicación?
Publicado por: Keyen Night en 26 Diciembre 2012, 18:54 pm
Que tarde más tiempo la primera vez se debe a que Windows se está "conociendo" con el programa, las veces posteriores ya sabe lo que va a hacer y trata de optimizar el trabajo (Al menos algo bueno en Windows :xD).

Es como cuando te mandan a hacer algo la primera vez, puedes sentirte confundido y si está bien hecho o no, luego con el tiempo vas ignorando eso y lo vas haciendo más rápido porque ya sabes como se hace. Todas estás funciones Windows las almacena en C:\Windows\Prefetch, si borras los archivos de esa carpeta verás que Windows inicia los programas más lento, hasta que de nuevo vuelve a "aprender" de ellos. No se como se estructura este archivo y si cambia de Windows en Windows o de Hardware en Hardware pero sería bueno investigar si lo podemos llevar con nosotros a través de otros equipos :silbar:...