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