Browse Source

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

Mike Smith 11 years ago
parent
commit
871cbccea5

+ 2 - 1
grizzly-bm/pom.xml

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

+ 1 - 1
grizzly-bm/setup.py

@@ -6,7 +6,7 @@ import os
 def start(args, logfile, errfile):
 def start(args, logfile, errfile):
   try:
   try:
     subprocess.check_call("mvn clean compile assembly:single", shell=True, cwd="grizzly-bm", stderr=errfile, stdout=logfile)
     subprocess.check_call("mvn clean compile assembly:single", shell=True, cwd="grizzly-bm", stderr=errfile, stdout=logfile)
-    subprocess.Popen("java -jar grizzly-bm-0.1-jar-with-dependencies.jar".rsplit(" "), cwd="grizzly-bm/target", stderr=errfile, stdout=logfile)
+    subprocess.Popen("java -Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size=16384 -Dorg.glassfish.grizzly.http.io.OutputBuffer.default-buffer-size=1024 -Dorg.glassfish.grizzly.memory.BuffersBuffer.bb-cache-size=32 -jar grizzly-bm-0.1-jar-with-dependencies.jar".rsplit(" "), cwd="grizzly-bm/target", stderr=errfile, stdout=logfile)
     return 0
     return 0
   except subprocess.CalledProcessError:
   except subprocess.CalledProcessError:
     return 1
     return 1

+ 34 - 1
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/Server.java

@@ -1,11 +1,16 @@
 package org.glassfish.grizzly.bm;
 package org.glassfish.grizzly.bm;
 
 
-import org.glassfish.grizzly.Grizzly;
+import org.glassfish.grizzly.filterchain.FilterChainBuilder;
+import org.glassfish.grizzly.http.server.AddOn;
+import org.glassfish.grizzly.http.server.FileCacheFilter;
 import org.glassfish.grizzly.http.server.HttpServer;
 import org.glassfish.grizzly.http.server.HttpServer;
 import org.glassfish.grizzly.http.server.NetworkListener;
 import org.glassfish.grizzly.http.server.NetworkListener;
 import org.glassfish.grizzly.http.server.RequestExecutorProvider;
 import org.glassfish.grizzly.http.server.RequestExecutorProvider;
+import org.glassfish.grizzly.http.server.util.HttpPipelineOptAddOn;
 import org.glassfish.grizzly.http.util.HeaderValue;
 import org.glassfish.grizzly.http.util.HeaderValue;
+import org.glassfish.grizzly.memory.PooledMemoryManager;
 import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
 import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
+import org.glassfish.grizzly.utils.IdleTimeoutFilter;
 
 
 /**
 /**
  * HttpServer
  * HttpServer
@@ -32,10 +37,21 @@ public class Server {
         transport.setWorkerThreadPoolConfig(null);
         transport.setWorkerThreadPoolConfig(null);
         transport.setSelectorRunnersCount(Runtime.getRuntime().availableProcessors() * 2);
         transport.setSelectorRunnersCount(Runtime.getRuntime().availableProcessors() * 2);
         
         
+        // set PooledMemoryManager
+        transport.setMemoryManager(new PooledMemoryManager());
+        
         // always keep-alive
         // always keep-alive
         networkListener.getKeepAlive().setIdleTimeoutInSeconds(-1);
         networkListener.getKeepAlive().setIdleTimeoutInSeconds(-1);
         networkListener.getKeepAlive().setMaxRequestsCount(-1);
         networkListener.getKeepAlive().setMaxRequestsCount(-1);
         
         
+        // disable transaction timeout
+        networkListener.setTransactionTimeout(-1);
+        
+        // remove the features we don't need
+        networkListener.registerAddOn(new SimplifyAddOn());
+        // add HTTP pipeline optimization
+        networkListener.registerAddOn(new HttpPipelineOptAddOn());
+        
         // disable file-cache
         // disable file-cache
         networkListener.getFileCache().setEnabled(false);
         networkListener.getFileCache().setEnabled(false);
         
         
@@ -59,4 +75,21 @@ public class Server {
             httpServer.shutdown();
             httpServer.shutdown();
         }
         }
     }
     }
+    
+    private static class SimplifyAddOn implements AddOn {
+
+        @Override
+        public void setup(final NetworkListener networkListener,
+                final FilterChainBuilder builder) {
+            final int fcIdx = builder.indexOfType(FileCacheFilter.class);
+            if (fcIdx != -1) {
+                builder.remove(fcIdx);
+            }
+            
+            final int itIdx = builder.indexOfType(IdleTimeoutFilter.class);
+            if (itIdx != -1) {
+                builder.remove(itIdx);
+            }
+        }
+    }    
 }
 }

+ 2 - 2
php-symfony2-stripped/src/Skamander/BenchmarkBundle/Controller/BenchController.php

@@ -27,11 +27,11 @@ class BenchController extends Controller
         $repo = $this->getDoctrine()
         $repo = $this->getDoctrine()
             ->getRepository('SkamanderBenchmarkBundle:World');
             ->getRepository('SkamanderBenchmarkBundle:World');
 
 
-        for($i = 0; $i < $queries; ++$i) {
+        for ($i = 0; $i < $queries; ++$i) {
             $worlds[] =  $repo->find(mt_rand(1, 10000));
             $worlds[] =  $repo->find(mt_rand(1, 10000));
         }
         }
 
 
-        if ($queries == 1) {
+        if ($queries == 1 && !$request->query->has('queries')) {
             $worlds = $worlds[0];
             $worlds = $worlds[0];
         }
         }