title: Java performance tips
body: <p>I have a program I ported from C to Java. Both apps use quicksort to order some partitioned data (genomic coordinates). </p>
  
  <p>The Java version runs fast, but I'd like to get it closer to the C version. I am using the Sun JDK v6u14.</p>
  
  <p>Obviously I can't get parity with the C application, but I'd like to learn what I can do to eke out as much performance as reasonably possible (within the limits of the environment).</p>
  
  <p>What sorts of things can I do to test performance of different parts of the application, memory usage, etc.? What would I do, specifically?</p>
  
  <p>Also, what tricks can I implement (in general) to change the properties and organization of my classes and variables, reducing memory usage and improving speed?</p>
  
  <p><strong>EDIT</strong> : I am using Eclipse and would obviously prefer free options for any third-party tools. Thanks!</p>