Building Faster Java
By Harshad Oak
Code Listing 1: OptimizationTrial.java before first CodeCoach run
package oramag.client; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; public class OptimizationTrial { public OptimizationTrial() { } static int count=99999; public static void main(String[] args) throws IOException{ todaysDay(); demoArrayListOptimized(count); demoArrayList(count); } public static void todaysDay() throws IOException{ Object today = fetchTodaysDay(); if (today instanceof String) { System.out.println("The object 'today' is always a String. Check unnecessary"); } System.out.println("Today is >>>" + today); } public static Object fetchTodaysDay() { SimpleDateFormat sfInput = new SimpleDateFormat("EEEEEEEEE"); return sfInput.format(new Date()); } public static void demoArrayList(int number) { System.out.println("Unoptimized Run"); ArrayList ar= new ArrayList (); //NOTE: Change number to zero to demonstrate codecoach and audit features for(int i=0; i<0; i++) { ar.add(new Integer(i)); } } public static void demoArrayListOptimized(int numberOpt) { System.out.println("Optimized Run"); ArrayList ar= new ArrayList (numberOpt); for(int i=0; i<numberOpt; i++) { ar.add(new Integer(i)); } } }
Code Listing 2: OptimizationTrial.java after CodeCoach optimization
package oramag.client; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; public final class OptimizationTrial { public OptimizationTrial() { } private static final int count=99999; public static void main(String[] args) throws IOException{ todaysDay(); demoArrayListOptimized(count); demoArrayList(count); } private static void todaysDay() throws IOException{ Object today = fetchTodaysDay(); //if (today instanceof String) { System.out.println("The object 'today' is always a String. Check unnecessary"); //} System.out.println("Today is >>>" + today); } private static Object fetchTodaysDay() { SimpleDateFormat sfInput = new SimpleDateFormat("EEEEEEEEE"); return sfInput.format(new Date()); } private static void demoArrayList(int number) { System.out.println("Unoptimized Run"); ArrayList ar= new ArrayList (); //NOTE: Change number to zero to demonstrate codecoach and audit features for(int i=0; i<number; i++) { ar.add(new Integer(i)); } } private static void demoArrayListOptimized(int numberOpt) { System.out.println("Optimized Run"); ArrayList ar= new ArrayList (numberOpt); for(int i=0; i<numberOpt; i++) { ar.add(new Integer(i)); } } }