You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/04/04 16:37:27 UTC

svn commit: r1464572 - in /httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark: Benchmark.java httpcore/RandomDataHandler.java jetty/RandomDataHandler.java

Author: olegk
Date: Thu Apr  4 14:37:27 2013
New Revision: 1464572

URL: http://svn.apache.org/r1464572
Log:
Increased number of default threads / requests; made blocking handlers more consistent with non-blocking ones

Modified:
    httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/Benchmark.java
    httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/httpcore/RandomDataHandler.java
    httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/jetty/RandomDataHandler.java

Modified: httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/Benchmark.java
URL: http://svn.apache.org/viewvc/httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/Benchmark.java?rev=1464572&r1=1464571&r2=1464572&view=diff
==============================================================================
--- httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/Benchmark.java (original)
+++ httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/Benchmark.java Thu Apr  4 14:37:27 2013
@@ -58,8 +58,8 @@ public class Benchmark {
             CommandLineUtils.parseCommandLine(cmd, config);
         } else {
             config.setKeepAlive(true);
-            config.setRequests(50000);
-            config.setThreads(25);
+            config.setRequests(100000);
+            config.setThreads(50);
         }
 
         final URL target = new URL("http", "localhost", PORT, "/rnd?c=2048");
@@ -69,8 +69,8 @@ public class Benchmark {
         benchmark.run(new JettyServer(PORT), config);
         benchmark.run(new HttpCoreServer(PORT), config);
         benchmark.run(new JettyNIOServer(PORT), config);
-        benchmark.run(new NettyNIOServer(PORT), config);
         benchmark.run(new HttpCoreNIOServer(PORT), config);
+        benchmark.run(new NettyNIOServer(PORT), config);
     }
 
     public Benchmark() {
@@ -96,6 +96,7 @@ public class Benchmark {
             final HttpBenchmark benchmark = new HttpBenchmark(config);
             benchmark.execute();
             System.out.println("---------------------------------------------------------------");
+            Thread.sleep(3000);
         } finally {
             server.shutdown();
         }

Modified: httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/httpcore/RandomDataHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/httpcore/RandomDataHandler.java?rev=1464572&r1=1464571&r2=1464572&view=diff
==============================================================================
--- httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/httpcore/RandomDataHandler.java (original)
+++ httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/httpcore/RandomDataHandler.java Thu Apr  4 14:37:27 2013
@@ -51,6 +51,7 @@ class RandomDataHandler implements HttpR
         super();
     }
 
+    @Override
     public void handle(
             final HttpRequest request,
             final HttpResponse response,
@@ -94,37 +95,37 @@ class RandomDataHandler implements HttpR
         public RandomEntity(final int count) {
             super();
             this.count = count;
-            this.buf = new byte[1024];
+            this.buf = new byte[count];
+            final int r = Math.abs(this.buf.hashCode());
+            for (int i = 0; i < count; i++) {
+                this.buf[i] = (byte) ((r + i) % 96 + 32);
+            }
             setContentType("text/plain");
         }
 
+        @Override
         public InputStream getContent() throws IOException, IllegalStateException {
             throw new IllegalStateException("Method not supported");
         }
 
+        @Override
         public long getContentLength() {
             return this.count;
         }
 
+        @Override
         public boolean isRepeatable() {
             return true;
         }
 
+        @Override
         public boolean isStreaming() {
             return false;
         }
 
+        @Override
         public void writeTo(final OutputStream outstream) throws IOException {
-            final int r = Math.abs(this.buf.hashCode());
-            int remaining = this.count;
-            while (remaining > 0) {
-                final int chunk = Math.min(this.buf.length, remaining);
-                for (int i = 0; i < chunk; i++) {
-                    this.buf[i] = (byte) ((r + i) % 96 + 32);
-                }
-                outstream.write(this.buf, 0, chunk);
-                remaining -= chunk;
-            }
+            outstream.write(this.buf);
         }
 
     }

Modified: httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/jetty/RandomDataHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/jetty/RandomDataHandler.java?rev=1464572&r1=1464571&r2=1464572&view=diff
==============================================================================
--- httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/jetty/RandomDataHandler.java (original)
+++ httpcomponents/benchmark/httpcore/trunk/src/main/java/org/apache/http/benchmark/jetty/RandomDataHandler.java Thu Apr  4 14:37:27 2013
@@ -44,6 +44,7 @@ class RandomDataHandler extends Abstract
         super();
     }
 
+    @Override
     public void handle(
             final String target,
             final Request baseRequest,
@@ -79,18 +80,14 @@ class RandomDataHandler extends Abstract
         response.setContentType("text/plain");
         response.setContentLength(count);
 
-        final OutputStream outstream = response.getOutputStream();
-        final byte[] tmp = new byte[1024];
-        final int r = Math.abs(tmp.hashCode());
-        int remaining = count;
-        while (remaining > 0) {
-            final int chunk = Math.min(tmp.length, remaining);
-            for (int i = 0; i < chunk; i++) {
-                tmp[i] = (byte) ((r + i) % 96 + 32);
-            }
-            outstream.write(tmp, 0, chunk);
-            remaining -= chunk;
+        final byte[] b = new byte[count];
+        final int r = Math.abs(b.hashCode());
+        for (int i = 0; i < count; i++) {
+            b[i] = (byte) ((r + i) % 96 + 32);
         }
+        
+        final OutputStream outstream = response.getOutputStream();
+        outstream.write(b);
         outstream.flush();
     }