Browse Source

Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

Mike Smith 11 years ago
parent
commit
52668dccf5

+ 1 - 1
grizzly-bm/pom.xml

@@ -68,7 +68,7 @@
         <dependency>
             <groupId>org.glassfish.grizzly</groupId>
             <artifactId>grizzly-http-server</artifactId>
-            <version>2.3.8-beta1</version>
+            <version>2.3.8</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>

+ 5 - 3
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/JsonHttpHandler.java

@@ -1,20 +1,22 @@
 package org.glassfish.grizzly.bm;
 
 import com.fasterxml.jackson.databind.*;
-import java.io.IOException;
 import org.glassfish.grizzly.http.server.HttpHandler;
 import org.glassfish.grizzly.http.server.Request;
 import org.glassfish.grizzly.http.server.RequestExecutorProvider;
 import org.glassfish.grizzly.http.server.Response;
+import org.glassfish.grizzly.http.util.ContentType;
 import org.glassfish.grizzly.http.util.Header;
 
 /**
  * Json usecase
  */
 public class JsonHttpHandler extends HttpHandler {
-
     private static final ObjectMapper MAPPER = new ObjectMapper();
     
+    private static final ContentType CONTENT_TYPE =
+            ContentType.newContentType("application/json", "utf-8").prepare();
+    
     // Response message class.
     public static class HelloMessage {
       public final String message = "Hello, World!";
@@ -23,7 +25,7 @@ public class JsonHttpHandler extends HttpHandler {
     @Override
     public void service(final Request request, final Response response)
             throws Exception {
-        response.setContentType("application/json");
+        response.setContentType(CONTENT_TYPE);
         response.setHeader(Header.Server, Server.SERVER_VERSION);
 
         // Write JSON encoded message to the response.

+ 33 - 0
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/PlainText2HttpHandler.java

@@ -0,0 +1,33 @@
+package org.glassfish.grizzly.bm;
+
+import org.glassfish.grizzly.http.server.HttpHandler;
+import org.glassfish.grizzly.http.server.Request;
+import org.glassfish.grizzly.http.server.RequestExecutorProvider;
+import org.glassfish.grizzly.http.server.Response;
+import org.glassfish.grizzly.http.util.ContentType;
+import org.glassfish.grizzly.http.util.Header;
+import org.glassfish.grizzly.utils.Charsets;
+
+/**
+ * Binary version of plain text usecase
+ * 
+ * @see PlainTextHttpHandler
+ */
+public class PlainText2HttpHandler extends HttpHandler {
+    private static final ContentType CONTENT_TYPE =
+            ContentType.newContentType("text/plain", "utf-8").prepare();
+    private static final byte[] HELLO_WORLD_BYTES = "Hello, World!".getBytes(Charsets.UTF8_CHARSET);
+            
+    @Override
+    public void service(final Request request, final Response response)
+            throws Exception {
+        response.setContentType(CONTENT_TYPE);
+        response.setHeader(Header.Server, Server.SERVER_VERSION);
+        response.getOutputStream().write(HELLO_WORLD_BYTES);
+    }
+
+    @Override
+    public RequestExecutorProvider getRequestExecutorProvider() {
+        return Server.EXECUTOR_PROVIDER;
+    }
+}

+ 4 - 2
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/PlainTextHttpHandler.java

@@ -4,18 +4,20 @@ import org.glassfish.grizzly.http.server.HttpHandler;
 import org.glassfish.grizzly.http.server.Request;
 import org.glassfish.grizzly.http.server.RequestExecutorProvider;
 import org.glassfish.grizzly.http.server.Response;
+import org.glassfish.grizzly.http.util.ContentType;
 import org.glassfish.grizzly.http.util.Header;
 
 /**
  * Plain text usecase
  */
 public class PlainTextHttpHandler extends HttpHandler {
+    private static final ContentType CONTENT_TYPE =
+            ContentType.newContentType("text/plain", "utf-8").prepare();
 
     @Override
     public void service(final Request request, final Response response)
             throws Exception {
-        response.setContentType("text/plain");
-        response.setCharacterEncoding("UTF-8");
+        response.setContentType(CONTENT_TYPE);
         response.setHeader(Header.Server, Server.SERVER_VERSION);
         response.getWriter().write("Hello, World!");
     }

+ 5 - 1
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/RootHttpHandler.java

@@ -10,7 +10,11 @@ import org.glassfish.grizzly.http.util.DataChunk;
  * Root {@link HttpHandler} to be used to avoid mapping overhead
  */
 public class RootHttpHandler extends HttpHandler {
-    private final HttpHandler plainTextHandler = new PlainTextHttpHandler();
+//  Uncomment for real text benchmark
+//    private final HttpHandler plainTextHandler = new PlainTextHttpHandler();
+    
+//  Binary PlainText handler  
+    private final HttpHandler plainTextHandler = new PlainText2HttpHandler();
     private final HttpHandler jsonHandler = new JsonHttpHandler();
     
     @Override

+ 8 - 2
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/Server.java

@@ -4,13 +4,15 @@ import org.glassfish.grizzly.Grizzly;
 import org.glassfish.grizzly.http.server.HttpServer;
 import org.glassfish.grizzly.http.server.NetworkListener;
 import org.glassfish.grizzly.http.server.RequestExecutorProvider;
+import org.glassfish.grizzly.http.util.HeaderValue;
 import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
 
 /**
  * HttpServer
  */
 public class Server {
-    public static final String SERVER_VERSION = "Grizzly/" + Grizzly.getDotedVersion();
+    public static final HeaderValue SERVER_VERSION =
+            HeaderValue.newHeaderValue("GRZLY").prepare();
     
     // The RequestExecutorProvider, which will run HTTP request processing
     // in the same thread
@@ -28,11 +30,15 @@ public class Server {
         
         // force to not initialize worker thread pool
         transport.setWorkerThreadPoolConfig(null);
-        transport.setSelectorRunnersCount(Runtime.getRuntime().availableProcessors());
+        transport.setSelectorRunnersCount(Runtime.getRuntime().availableProcessors() * 2);
         
+        // always keep-alive
         networkListener.getKeepAlive().setIdleTimeoutInSeconds(-1);
         networkListener.getKeepAlive().setMaxRequestsCount(-1);
         
+        // disable file-cache
+        networkListener.getFileCache().setEnabled(false);
+        
         httpServer.addListener(networkListener);
         
         httpServer.getServerConfiguration().addHttpHandler(