src/main/java/com/gravitext/testservlets/PerfTestServlet.java in jetty-6.1.18.1 vs src/main/java/com/gravitext/testservlets/PerfTestServlet.java in jetty-6.1.19.1
- old
+ new
@@ -25,11 +25,11 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
- * Servlet for perform and chunked output testing.
+ * Servlet for perform and chunked output testing.
* @author David Kellum
*/
public class PerfTestServlet extends HttpServlet
{
@@ -37,17 +37,17 @@
protected void doGet( HttpServletRequest req, HttpServletResponse resp )
throws ServletException, IOException
{
int delayConst = getParam( req, "delay", 0 );
int delayRandom = getParam( req, "rdelay", 0 );
-
+
int burnConst = getParam( req, "burn", 0 );
int burnRandom = getParam( req, "rburn", 0 );
-
+
int size = getParam( req, "size", 0 );
int sizeRandom = getParam( req, "rsize", 0 );
-
+
int count = getParam( req, "count", 0 );
count += random( getParam( req, "rcount", 0 ) );
resp.setContentType("text/html; charset=ISO-8859-1" );
@@ -66,28 +66,28 @@
out.println( "<tr><td>delay</td><td>Constant chunk delay in ms</td></tr>" );
out.println( "<tr><td>rdelay</td><td>Random [0,n) chunk delay in ms</td></tr>" );
out.println( "<tr><td>burn</td><td>Constant chunk CPU burn time in ms</td></tr>" );
out.println( "<tr><td>rburn</td><td>Random [0,n) chunk burn time in ms</td></tr>" );
out.println( "</table>" );
-
+
out.println( "<h2>Output</h2>" );
out.flush();
-
+
out.println( "<p>Writing " + count + " (delayed) chunks...</p>" );
out.flush();
try {
for( int b = 0; b < count; ++b ) {
-
+
long delay = delayConst + random( delayRandom );
if( delay > 0 ) Thread.sleep( delay );
int burn = burnConst + random ( burnRandom );
if( burn > 0 ) {
delay += burnTime( burn );
}
-
+
out.println( "<p>(Delayed " + delay + " ms) " );
int f = size + random( sizeRandom );
while( f > 0 ) {
out.print( FILLER );
@@ -101,53 +101,53 @@
catch( InterruptedException x ) {}
out.println( "</body>" );
out.println( "</html>" );
out.flush();
}
-
+
private long burnTime( int burn_ms )
{
long prime = 2;
long begin = System.currentTimeMillis();
long endTime = begin + burn_ms;
long last = 0;
do {
prime = BigInteger.probablePrime( 64, new Random() ).longValue();
- last = System.currentTimeMillis();
+ last = System.currentTimeMillis();
} while( last < endTime );
if( prime == 2 ) {
throw new IllegalStateException( "Not a prime!" );
}
return last - begin;
}
- private int getParam( HttpServletRequest req, String name, int defVal )
+ private int getParam( HttpServletRequest req, String name, int defVal )
{
int value = defVal;
String strVal = req.getParameter( name );
if( strVal != null ) {
- value = Integer.parseInt( strVal );
+ value = Integer.parseInt( strVal );
}
-
+
return value;
}
-
+
private int random( int range )
{
Random _random = new Random();
if( range > 0 ) return _random.nextInt( range );
return 0;
}
-
- private static final String FILLER =
- "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " +
- "sed do eiusmod tempor incididunt ut labore et dolore magna " +
- "aliqua. Ut enim ad minim veniam, quis nostrud exercitation " +
- "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis " +
- "aute irure dolor in reprehenderit in voluptate velit esse cillum " +
- "dolore eu fugiat nulla pariatur. Excepteur sint occaecat " +
- "cupidatat non proident, sunt in culpa qui officia deserunt " +
+
+ private static final String FILLER =
+ "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " +
+ "sed do eiusmod tempor incididunt ut labore et dolore magna " +
+ "aliqua. Ut enim ad minim veniam, quis nostrud exercitation " +
+ "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis " +
+ "aute irure dolor in reprehenderit in voluptate velit esse cillum " +
+ "dolore eu fugiat nulla pariatur. Excepteur sint occaecat " +
+ "cupidatat non proident, sunt in culpa qui officia deserunt " +
"mollit anim id est laborum. ";
private static final long serialVersionUID = 1L;
}