vote up 3 vote down star

We have speed problems in corporate enviroment.

Most of the notebooks are strongly loaded: the start-up time of Excel is 3-5 minutes, Outlook 10-15 minutes etc.

Our application has the same start-up time, instead of the normal 10-20 seconds. If once it started, after a program restart it works fine.

How is it possible to warm-up our application?

My first tought was to write a small script and run it right before our application startup:

  • connect to the local SQL Server and get some data
  • preload assemblies
  • ???

But I think it's not enough - or totally a mistake.

Edit:

They have IBM Thinkpad X40 notebooks with 1GB RAM. Specialized Windows XP installed (I think this + background installers are the root of all our problems).

flag
8  
10 - 15 minutes to start Outlook! WTF? – PhilipW Nov 12 at 17:07
Yes...a normal Windows boot ~20 minutes. Horror. – boj Nov 12 at 17:09
4  
Looks like someone needs to upgrade from those Pentium II's – Matthew Ruston Nov 12 at 17:09
3  
Repost to superuser. – Bobby Alexander Nov 12 at 17:22
2  
This is the classic software/hardware problem: hardware centric folks will say it's a problem with the software (eg, why not just switch to linux? it runs on 386s!) and software people will say it's just a hardware problem (oh come on, it's got to be because you're not using the latest Core Ikickass!) – pepkaro Nov 12 at 17:32
show 4 more comments

migrated from stackoverflow.com

9 Answers

vote up 5 vote down

If the machines are this grossly under-powered then I'd make the argument to your superiors that the problems lie in the companies IT provision to staff. I'd say any development time spent on this would be ill-spent.

link|flag
vote up 4 vote down

Maybe a bit naive, but still... format & reinstal Windows :-)

link|flag
1  
The company has ~300 notebooks...as I said it's corporate environment. So that's not really an option:) – boj Nov 12 at 17:08
2  
on your box at home, maybe, but corporate IT doesn't work like that – gridzbi Nov 12 at 17:10
If your corporate system doesn't have a way of mass-reformatting drives, buy one. It's worth it. – pepkaro Nov 12 at 17:43
vote up 3 vote down

What do you mean strongly loaded?

From your symptoms the problem might be that they do not have enough RAM. In which case when you start your applications they will have to swap previously running applications into virtual memory.

When you close that application and restart it straight away, you will have free RAM so it will restart quickly.

But it will do no good if you do something else in the meantime, i.e. open Outlook, close Outlook, open Excel - do some work, then if you open Outlook again it will not open quickly, i.e. your original suggestion to try and automatically open and close your application (at bootup?) won't help.

link|flag
+1, exactly what I was thinking. – Heather Nov 12 at 17:15
I mean something works always in the background: installers, security applications etc. I've tested it: the half of the RAM is empty (0.5GB), CPU usage is ~8-10%...but still soooo freakin' slow. – boj Nov 12 at 17:22
vote up 3 vote down

Perhaps this is a roaming profile issue? I don't know about your program, but Excel and Outlook make significant use of the User folder, which is probably stored somewhere on your corporate network for each Active Directory account. My guess is that either the network or the storage system is too slow for your 300+ users.

link|flag
vote up 2 vote down

Here is a nice article about speeding up an application start time.

Improving Application Startup Time

Over the few past months, the CLR performance team met with several customers to investigate performance issues in some of their applications. One recurring problem was client application startup time. So in this column, I'll present lessons we learned analyzing these applications.

Planning for Performance Your success in reaching your performance goals depends on the process you will be using. A good process can help you achieve the level of performance you need. These four simple rules will help:

link|flag
3  
good article... any chance we could get a summary excerpt rather than a teaser excerpt? – Jimmy Nov 12 at 17:14
vote up 1 vote down

What are the metrics you see via Task Manager ?

Which Process is consuming the most CPU ?

Which Processes are consuming RAM ?

Is there an anti virus running in the background doing a full scan every time a computer starts ?

how many Page Faults by which processes ?

Whats the Configuration of Computers and which Softwares ?

link|flag
They have normal values with CPU and RAM, I'll check your last 3 questions. But what's the meaning of page faults? (I'm using sysinternals process explorer, I have detailed page fault informations. Task Manager is disabled on the machines.) – boj Nov 12 at 17:32
IBM Thinkpad X40 with specialized Windows XP. Software runs on .NET 1.1 and uses MSDE as database server. – boj Nov 12 at 20:03
vote up 1 vote down

You should also consider distributed optimized native assemblies that will take some work off the JIT at startup/early app lifecycle time.

Have a look at NGEN, it's basically doing JIT at compile time, and some other preloading magic!

http://msdn.microsoft.com/en-us/library/6t9t5wcf%28VS.80%29.aspx

Cheers, Florian

link|flag
I'll check it, thank you! – boj Nov 12 at 19:27
vote up 0 vote down

As Simon hinted at above, this shouldn't be the type of issue you try to work around using a warmup script. I'd suggest serious hardware and software upgrades. I mean 15 minutes to start outlook?

link|flag
vote up 0 vote down

You or someone with some influence should be able to make a solid case to management for lost productivity because of the exorbitant startup times. It should be clear that in a very short time the cost of upgrading RAM would pay for itself in increased productivity. Heck, if you have to wait 15 minutes four times a day (a conservative estimate, I'm sure), you lose 12.5% of your workday EVERY DAY. Multiply this by 300 laptops, and...

Oh--you must work for a federal agency!

link|flag
1  
that's agreed - but what can we do as small vendor against the big company?:) – boj Nov 12 at 17:29

Your Answer

Get an OpenID
or
never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.