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.


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).

  • 9
    10 - 15 minutes to start Outlook! WTF?
    – PhilipW
    Nov 12, 2009 at 17:07
  • 5
    Looks like someone needs to upgrade from those Pentium II's Nov 12, 2009 at 17:09
  • 3
    Repost to superuser.
    – Bobby Alexander
    Nov 12, 2009 at 17:22
  • 1
    If other apps are taking that much to load, then surely no script will help your app. How fast does a simple console app take to load?
    – Groo
    Nov 12, 2009 at 17:25
  • 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!)
    – Robert P
    Nov 12, 2009 at 17:32

10 Answers 10


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.


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

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

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.


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.

  • 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, 2009 at 17:22

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:

  • 4
    good article... any chance we could get a summary excerpt rather than a teaser excerpt?
    – Jimmy
    Nov 12, 2009 at 17:14

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!


Cheers, Florian


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!

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

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 ?

  • 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, 2009 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, 2009 at 20:03

there are ways to Script out the belotion, on the system and various programs. both Deleting unnessisary garbage that is all over the system, and turning off "features" that often arent features at all. if i was in your situation, I would take ONE, and beat it down, and each time i found items of gluttony and laciviousness i would write that into my simple script. both out of the registry using very simple removal batchs, and off the disks , and out of the startup and services junk. then i would test that created formula on the machine i had, then borrow one more little piggy and remove its fat too. add in checking the network connection types and parameters for net connections.

once i was sure of full operation without belotion and sloth, i would run a quick backup on each machine, then do the ol Liposuction to it, and test its operation. one by one, re-delivering back to the users a workable machine. once the word got out, they would be flocking to you to have thiers done next.


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?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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