title: Comparing cold-start to warm start
body: <p>Our application takes significantly more time to launch after a reboot (cold start) than if it was already opened once (warm start). </p>
  
  <p>Most (if not all) the difference seems to come from loading DLLs, when the DLLs' are in cached memory pages they load much faster. We tried using <a href="http://mypchell.com/content/view/40/1/" rel="noreferrer">ClearMem</a> to simulate rebooting (since its much less time consuming than actually rebooting) and got mixed results, on some machines it seemed to simulate a reboot very consistently and in some not.</p>
  
  <p>To sum up my questions are:</p>
  
  <ol>
  <li>Have you experienced differences in launch time between cold and warm starts?</li>
  <li>How have you delt with such differences? </li>
  <li>Do you know of a way to dependably simulate a reboot?</li>
  </ol>
  
  <p><strong>Edit:</strong></p>
  
  <p>Clarifications for comments:</p>
  
  <ul>
  <li>The application is mostly native C++ with some .NET (the first .NET assembly that's loaded pays for the CLR).</li>
  <li>We're looking to improve load time, obviously we did our share of profiling and improved the hotspots in our code.</li>
  </ul>
  
  <p>Something I forgot to mention was that we got some improvement by re-basing all our binaries so the loader doesn't have to do it at load time.</p>