Author: kkolinko Date: Fri Sep 9 21:30:28 2011 New Revision: 1167368 URL: http://svn.apache.org/viewvc?rev=1167368&view=rev Log: Reviewing r1166576... Improve performance of Http11Processor.disableKeepAlive(): call getMaxThreads() first and do not call getCurrentThreadsBusy() twice, because ThreadPoolExecutor.getActiveCount() in JRE is implemented as a loop that counts threads and that should be expensive.
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1167368&r1=1167367&r2=1167368&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Sep 9 21:30:28 2011 @@ -121,14 +121,14 @@ public class Http11Processor extends Abs @Override protected boolean disableKeepAlive() { int threadRatio = -1; - // These may return zero or negative values - // Only calculate a thread ratio when both are >0 to ensure we get a - // sensible result - if (endpoint.getCurrentThreadsBusy() >0 && - endpoint.getMaxThreads() >0) { - threadRatio = (endpoint.getCurrentThreadsBusy() * 100) - / endpoint.getMaxThreads(); - } + // These may return zero or negative values + // Only calculate a thread ratio when both are >0 to ensure we get a + // sensible result + int maxThreads, threadsBusy; + if ((maxThreads = endpoint.getMaxThreads()) > 0 + && (threadsBusy = endpoint.getCurrentThreadsBusy()) > 0) { + threadRatio = (threadsBusy * 100) / maxThreads; + } // Disable keep-alive if we are running low on threads if (threadRatio > getDisableKeepAlivePercentage()) { return true; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org