title: Is stopwatch benchmarking acceptable?
body: <p>Does anyone ever use stopwatch benchmarking, or should a performance tool always be used?  Are there any good free tools available for Java?  What tools do you use?</p>
  
  <p>To clarify my concerns, stopwatch benchmarking is subject to error due to operating system scheduling.  On a given run of your program the OS might schedule another process (or several) in the middle of the function you're timing.  In Java, things are even a little bit worse if you're trying to time a threaded application, as the JVM scheduler throws even a little bit more randomness into the mix.</p>
  
  <p>How do you address operating system scheduling when benchmarking?</p>