<%@ page language="java" %> Performance test: stringbuffer and java vs. jsp quoting

Performance test: stringbuffer and java vs. jsp quoting.
Print 200 lines with (a) a StringBuffer that is reused for each line and print the line, (b) a StringBuffer that grows to accomodate all lines and print all lines in one go, and (c) mix HTML with a Java expression in the <%= %> fashion, for each line.

<% // -------------------------------------------------------------------- // Print 200 lines with nonsense: // -------------------------------------------------------------------- final String[] var = new String[200]; for (int i = 0; i < var.length; i++) { var[i] = new String("Yadda yadda"); } // -------------------------------------------------------------------- // Use a small buffer for printing: // -------------------------------------------------------------------- long startt = System.currentTimeMillis(); StringBuffer buffer = new StringBuffer(); try { for (int i = 0; i < var.length; i++) { buffer.setLength(0); buffer.append("\n

Een regel: "); buffer.append(var[i]); buffer.append("

"); out.print(buffer.toString()); } } catch (RuntimeException e) { } long deltat1 = System.currentTimeMillis() - startt; // -------------------------------------------------------------------- // Use a buffer, but let it grow until we're done, and then print: // -------------------------------------------------------------------- startt = System.currentTimeMillis(); buffer = new StringBuffer(); for (int i = 0; i < var.length; i++) { buffer.append("\n

Een regel: "); buffer.append(var[i]); buffer.append("

"); } out.print(buffer.toString()); long deltat2 = System.currentTimeMillis() - startt; // -------------------------------------------------------------------- // Using the 'easy for wepbage authors' method: // -------------------------------------------------------------------- startt = System.currentTimeMillis(); for (int i = 0; i < var.length; i++) { %>

Een regel: <%= var[i] %>

<% } long deltat3 = System.currentTimeMillis() - startt; out.print("

Reused buffer took: " + deltat1 + " msec

"); out.print("

Single large buffer took: " + deltat2 + " msec

"); out.print("

Quoting took: " + deltat3 + " msec

"); %>