You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2015/05/21 19:11:50 UTC

svn commit: r1680928 - in /tomcat/trunk: java/org/apache/tomcat/util/net/Nio2Endpoint.java webapps/docs/config/http.xml

Author: remm
Date: Thu May 21 17:11:49 2015
New Revision: 1680928

URL: http://svn.apache.org/r1680928
Log:
Drop useCaches from NIO2 and fix issue in doc.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
    tomcat/trunk/webapps/docs/config/http.xml

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1680928&r1=1680927&r2=1680928&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Thu May 21 17:11:49 2015
@@ -100,14 +100,6 @@ public class Nio2Endpoint extends Abstra
 
 
     /**
-     * Use the object caches to reduce GC at the expense of additional memory use.
-     */
-    private boolean useCaches = true;
-    public void setUseCaches(boolean useCaches) { this.useCaches = useCaches; }
-    public boolean getUseCaches() { return useCaches; }
-
-
-    /**
      * Handling of accepted sockets.
      */
     private Handler handler = null;
@@ -153,10 +145,8 @@ public class Nio2Endpoint extends Abstra
 
 
     protected void releaseCaches() {
-        if (useCaches) {
-            this.nioChannels.clear();
-            this.processorCache.clear();
-        }
+        this.nioChannels.clear();
+        this.processorCache.clear();
         if ( handler != null ) handler.recycle();
     }
 
@@ -221,12 +211,10 @@ public class Nio2Endpoint extends Abstra
             running = true;
             paused = false;
 
-            if (useCaches) {
-                processorCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
-                        socketProperties.getProcessorCache());
-                nioChannels = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
-                        socketProperties.getBufferPool());
-            }
+            processorCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+                    socketProperties.getProcessorCache());
+            nioChannels = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+                    socketProperties.getBufferPool());
 
             // Create worker collection
             if ( getExecutor() == null ) {
@@ -277,10 +265,8 @@ public class Nio2Endpoint extends Abstra
                     }
                 }
             });
-            if (useCaches) {
-                nioChannels.clear();
-                processorCache.clear();
-            }
+            nioChannels.clear();
+            processorCache.clear();
         }
     }
 
@@ -355,7 +341,7 @@ public class Nio2Endpoint extends Abstra
         try {
             socketProperties.setProperties(socket);
 
-            Nio2Channel channel = (useCaches) ? nioChannels.pop() : null;
+            Nio2Channel channel = nioChannels.pop();
             if (channel == null) {
                 SocketBufferHandler bufhandler = new SocketBufferHandler(
                         socketProperties.getAppReadBufSize(),
@@ -407,7 +393,7 @@ public class Nio2Endpoint extends Abstra
 
     protected boolean processSocket0(SocketWrapperBase<Nio2Channel> socketWrapper, SocketStatus status, boolean dispatch) {
         try {
-            SocketProcessor sc = (useCaches) ? processorCache.pop() : null;
+            SocketProcessor sc = processorCache.pop();
             if (sc == null) {
                 sc = new SocketProcessor(socketWrapper, status);
             } else {
@@ -1664,7 +1650,7 @@ public class Nio2Endpoint extends Abstra
                         if (state == SocketState.CLOSED) {
                             // Close socket and pool
                             closeSocket(socket);
-                            if (useCaches && running && !paused) {
+                            if (running && !paused) {
                                 nioChannels.push(socket.getSocket());
                             }
                         } else if (state == SocketState.UPGRADING) {
@@ -1673,7 +1659,7 @@ public class Nio2Endpoint extends Abstra
                         }
                     } else if (handshake == -1 ) {
                         closeSocket(socket);
-                        if (useCaches && running && !paused) {
+                        if (running && !paused) {
                             nioChannels.push(socket.getSocket());
                         }
                     }
@@ -1698,7 +1684,7 @@ public class Nio2Endpoint extends Abstra
                     socket = null;
                     status = null;
                     //return to cache
-                    if (useCaches && running && !paused) {
+                    if (running && !paused) {
                         processorCache.push(this);
                     }
                 }

Modified: tomcat/trunk/webapps/docs/config/http.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/http.xml?rev=1680928&r1=1680927&r2=1680928&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/trunk/webapps/docs/config/http.xml Thu May 21 17:11:49 2015
@@ -786,12 +786,6 @@
 
     <attributes>
 
-      <attribute name="useCaches" required="false">
-        <p>(bool)Use this attribute to enable or disable object caching to
-        reduce the amount of GC objects produced.
-        The default value is <code>false</code>.</p>
-      </attribute>
-
       <attribute name="useSendfile" required="false">
         <p>(bool)Use this attribute to enable or disable sendfile capability.
         The default value is <code>true</code>. Note that the use of sendfile
@@ -841,7 +835,7 @@
         dealing with tens of thousands concurrent connections.</p>
       </attribute>
 
-      <attribute name="socket.bufferPoolSize" required="false">
+      <attribute name="socket.bufferPool" required="false">
         <p>(int)The NIO2 connector uses a class called Nio2Channel that holds
         elements linked to a socket. To reduce garbage collection, the NIO2
         connector caches these channel objects. This value specifies the size of



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


Re: svn commit: r1680928 - in /tomcat/trunk: java/org/apache/tomcat/util/net/Nio2Endpoint.java webapps/docs/config/http.xml

Posted by Rémy Maucherat <re...@apache.org>.
2015-05-21 19:11 GMT+02:00 <re...@apache.org>:

> Author: remm
> Date: Thu May 21 17:11:49 2015
> New Revision: 1680928
>
> URL: http://svn.apache.org/r1680928
> Log:
> Drop useCaches from NIO2 and fix issue in doc.
>
> Modified:
>     tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
>     tomcat/trunk/webapps/docs/config/http.xml
>
> The explanation is that direct buffers seem to cause difficulties for GC
and shouldn't be thrown away too rapidly, as would happen when using the
direct flags without the caching (OpenSSL engine uses direct buffers so it
more or less requires that configuration).

Rémy