title: generate CPU load in Java
body: <p>I am conducting some throughput testing. My application has to</p>
  
  <ol>
  <li>read from JMS</li>
  <li>do some processing</li>
  <li>write to JMS</li>
  </ol>
  
  <p>My goal here is to simulate #2, 'some processing'. That is, introduce a delay and occupy the CPU for a given time (e.g. 500ms) before forwarding the event.</p>
  
  <p>The naive approach would be to <code>Thread.sleep(500)</code>. This would introduce the right delay in execution, but would not exercise the CPU.</p>
  
  <p>Calculating Fibonacci numbers is one option.
  <strong>Has anyone used any interesting techniques just to keep CPU(s) busy for a given time?</strong></p>
  
  <p>Ideal characteristics would be:</p>
  
  <ul>
  <li>Performs a variety of instructions, rather than (for example) just spinning on a loop</li>
  <li>Not something the HotSpot VM is going to optimise away to nothing</li>
  <li>Has an easy way to adjust the processing period up or down (time to complete will clearly vary given the hardware)</li>
  </ul>