I have been looking through the ApacheCon Tomcat performance
presentation while simultaneously working on a performance / memory
problem with Tomcat 4.x, and I have one more item that I would add to
the presentation:

Make sure JSP pages that do not deal with the session have "<%@ page
session="false" %>" in them.  Consider the following brain-dead JSP:

<html>
<body>
  All the numbers from 0 to 100.<br />
  <%
    for (int i=0; i < 100; i++)
    {
      out.println(i + ", ");
    }
    out.println(100);
   %>
</body>
</html>

Jasper generates the following: 

  public void _jspService(HttpServletRequest request,
HttpServletResponse response)
        throws java.io.IOException, ServletException {
...
    HttpSession session = null;
...
      pageContext = _jspxFactory.getPageContext(this, request,
response,
                        null, true, 8192, true);
      session = pageContext.getSession();
...

Here the session object is totally unneccessary (both in the
getSession, and in the 3rd-to-last, "true" argument ot the
getPageContext call).  Creating a session adds to the latency of the
request, and worse(in my case, doing some load-testing), adds memory
that is not freed up until the session timeout expires - 30 minutes by
default, possibly creating a situation where the memory is maxed out on
the JVM process.

Hitting very simple JSPs on my system (600Mhz Single proc machine
-Xmx256m, 75 processors going directly to 8080), caused about a 25%
performance gain (~515 req/s up to ~640 req/s)  Very significant.

I just thought it worth passing on since it seems useful and (AFAIK) is
not mentioned anywhere in docs.

Jeff Tulley  ([EMAIL PROTECTED])
(801)861-5322
Novell, Inc., The Leading Provider of Net Business Solutions
http://www.novell.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to