Author: markt
Date: Tue Nov 16 17:13:29 2010
New Revision: 1035699

URL: http://svn.apache.org/viewvc?rev=1035699&view=rev
Log:
Session manager performance
Narrow sync - few % improvement

Modified:
    tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
    tomcat/trunk/test/org/apache/catalina/session/Benchmarks.java

Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=1035699&r1=1035698&r2=1035699&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Tue Nov 16 
17:13:29 2010
@@ -980,7 +980,7 @@ public abstract class ManagerBase extend
     /**
      * Generate and return a new session identifier.
      */
-    protected synchronized String generateSessionId() {
+    protected String generateSessionId() {
 
         byte random[] = new byte[16];
         String jvmRoute = getJvmRoute();
@@ -996,8 +996,10 @@ public abstract class ManagerBase extend
             }
 
             while (resultLenBytes < this.sessionIdLength) {
-                getRandomBytes(random);
-                random = getDigest().digest(random);
+                synchronized (this) {
+                    getRandomBytes(random);
+                    random = getDigest().digest(random);
+                }
                 for (int j = 0;
                 j < random.length && resultLenBytes < this.sessionIdLength;
                 j++) {

Modified: tomcat/trunk/test/org/apache/catalina/session/Benchmarks.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/session/Benchmarks.java?rev=1035699&r1=1035698&r2=1035699&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/session/Benchmarks.java (original)
+++ tomcat/trunk/test/org/apache/catalina/session/Benchmarks.java Tue Nov 16 
17:13:29 2010
@@ -108,10 +108,10 @@ public class Benchmarks extends TestCase
     
     /*
      * Results on markt's 4-core dev box
-     *  1 thread  -  2,422ms
-     *  2 threads -  5,047ms
-     *  4 threads - 13,188ms
-     * 16 threads - 54,422ms
+     *  1 thread  -  ~2,400ms
+     *  2 threads -  ~4,700ms
+     *  4 threads - ~12,600ms
+     * 16 threads - ~53,700ms
      */
     public void testManagerBaseCreateSession() {
         doTestManagerBaseCreateSession(1, 100000);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to