Slow startup of Deployed Application

J

jeff

Hi All.

I realize that when my Deployed winforms application starts, Windows needs
to load the .net 2 framework before control is given to my application....

Is there anyway to either ...

- preload the .net 2 framework (windows startup or whatever)

- splash a screen ... application loading ... please wait ... type of
message.

I was considering building a 'launcher' program in VB 6 ... a simple splash
window ...

this launcher would

- open a form ... prgraming is starting please be patient...
- call my application to start ...
- pole a file every few seconds to check to see if my main applicaiton is
open yet ...
- once flag in file set ... shutdown form...


Any thoughts / ideas ...

Thanks
Jeff.
 
S

Simon Verona

I'm guessing he's suffering the issue whereby a user clicks on the icon to
start his application, then nothing happens for several seconds... This
causes the user to get frustrated and click on the icon again, creating
multiple copies of the application.

This doesn't help with the perception of performance either... I've had
users complain about this.. t's even worse on a fresh install because the
application then needs "jitting"

Regards
Simon
 
J

jeff

the delay before my project starts... the user sits and waits ... sometimes
10 seconds ... that is the issue.

so, my question / issue is there a way to ...

a. preload the net 2 framework ... to avoid this delay.

b. have a popup window start before the .net 2 framework loads indicating to
the user to wait 5 / 6 seconds while OS loads its NET framework...this is
not likely, 'cause any 'splash window' would require the .net framework to
be loaded.

c. what are other people doing to notify the user to hold on tight ...
'cause we are waiting for the OS to load the .net framework.

d. tell all the users you need to upgrade to 2 gigs of ram ...

e. preload the .net framework during startup / reboot of the computer.

Ideas?

Thanks

Jeff
 
G

gene kelley

the delay before my project starts... the user sits and waits ... sometimes
10 seconds ... that is the issue.

so, my question / issue is there a way to ...

a. preload the net 2 framework ... to avoid this delay.

b. have a popup window start before the .net 2 framework loads indicating to
the user to wait 5 / 6 seconds while OS loads its NET framework...this is
not likely, 'cause any 'splash window' would require the .net framework to
be loaded.

c. what are other people doing to notify the user to hold on tight ...
'cause we are waiting for the OS to load the .net framework.

d. tell all the users you need to upgrade to 2 gigs of ram ...

e. preload the .net framework during startup / reboot of the computer.

Ideas?

Thanks

Jeff

1) I use the builtin Splash Screen funtionality in VB2005. It loads and displays
"before" any other part of the application is initialized. From a cold boot, the
builtin splash (at least in my cases) displays within a second or two. This would
not be the case necessarily using a standard form as a Splash Screen launched from a
SubMain (), for example.

2) Use the main form load event only for getting the main form displayed asap. When
the main form is displayed, the builtin Splash Screen closes and the main form's
Shown Event is fired. Use the Shown Event to do any furher initializations. If
that's a lenghty process, you can display some kind of wait/progress form from the
Shown Event.

Gene
 
J

jeff

that is exactly what i do ...

for me.. the delay is 1 - 2 seconds from a cold boot / fresh deploy ... on
my development machine and test machines.

however, my clients ... who have older machines, less ram and so on ...
suffer from the lag of loading the .net framework (some as long as 10
seconds) ... and they are the ones i care about ...once the framework is
loaded, the application is fast ...

Thanks
Jeff
 
I

Izzy

If it takes several seconds or even 10 seconds then there is another
problem.

My computer is only a 1.8ghz processor with 512mb RAM and when i double
click on my .NET 2005 2.0 framework application which uses 3rd party
Infragistiscs controls AND queries a SQL Server 2000 database 6 times
on Form load....

It opens in 1 maybe 1.5 seconds.

Yes it is slower than VB6, but not 10 seconds slower or even 4 seconds
slower.

So yes you might think about upgrading the users PC's if it's actually
taking 10 seconds too load 1 .NET application.

I did create a splash screen once for a .NET application which ran 30
or 40 queries on a database before loading. Even then it only took
around 7 or 8 seconds too load.

Sorry I can't be of more help, but I don't think the .NET assembly is
the entire issue here.

Izzy
 
I

Izzy

If it were me I would simply explain to the "clients" there machines
are old and therefor it's going to take longer too load an application
that is built for Pentium 4 computer.

Otherwise use VB6 which was released back in the days of P3's and P2's.

Instead of trying to work around the problem....I say solve the
problem. Upgrade.

If they don't want to upgrade then....it's out of your hands. It's not
your fault they are using P2's with 128mb of RAM.

Heck you can get Dell's for like 400 bucks these days.

Anyway that's my humble opinion.

Good luck.

Izzy
 
J

jeff

Izzy ...

your experience is great ... and thanks for your two cents ...
unfortunately, my situation is not the same as yours ... and this is an
issue for me and our client.

a single window (form) application with a 'hello world' button on it takes
the same time to load for the client as does the production application we
built. So as complicated as your application may be, or as 'streamline'
your application maybe during the load process, it would be nearly
impossible for it to load faster than the 'one form', 'one button' test
application - which still takes the same amount of time to load.

The cause of their problem is not 'hardware' as they all have 'dell'
computers, with the oldest being 2 yrs and all have 512mb ram... And when
they double click on the .Net 2005 2.0 framework application which uses a
single form and runs NO queries ... it is lightning fast - THE SECOND TIME.
it is the first time they experience the delay ... user comes to work,
starts up their machine, logs on ... double-clicks icon and waits... user
checks a few things ... closes application... goes for a coffee...comes back
.... double-clicks icon ... boom application is there ... no lag. So, what
this tells me ... I maybe wrong (which I am more times than not) ... that
the initial loading of the .net 2 framework is the cause of the delay ...
and not the program ...

As for what is delaying the loading of the .net 2 framework - who knows...
antivirus programs, disk scanning programs, and so on ... as I said, I do
not experience this delay on my development machine or even my test machine
and this delay is not consistant between user with the same hardware
configuration ... So, I just simply want to pre-load the .net 2 framework
during startup... make it an OS delay ... do not delay the opening of our
application ... making it a #$&^ing application delay.

So,

I will ask my question again ...

Is there a way to preload the .net 2 framework during the computer startup ?

A simple yes or no would be great ...

Thanks
Jeff.
 
I

Izzy

You could try writting a simple single form applicaton and add the
..exe path too this registery key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

This way when the OS starts the .NET dll's will get cached.

Or you could even have your application run at startup via this
registry key, this way the delay will only happen when the OS starts.
If you don't want your app actually starting automatically then add a
startup parameter, and don't show the main form when the application is
started via the OS.

I hope that makes since.

I don't think the issue is the .NET framework but probably the JIT
(Just-In-Time) compiler.

Let me know if this helps.

Izzy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top