Optimizing Java: Practical Techniques for Improving JVM