You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by John McNally <jm...@collab.net> on 2002/05/20 20:53:38 UTC
Re: [PATCH] t2 main servlet performance (minor)
I applied this patch. Not sure that I responded, though. So sorry if I
am repeating myself. I also applied relevant parts to t3.
john mcnally
On Fri, 2002-04-12 at 23:35, Ben Peter wrote:
> Hi,
>
> in Turbine's doGet(), two spots may improve performance:
>
> 1.) A SessionValidator instance is obtained from ActionLoader and never used again.
> If the call has no side-effects that are wanted, it can be safely removed.
>
> 2.) The check for firstDoGet is faster if the first (unsynchronized) call is
> made within the doGet() method, as it won't add the overhead of a method call
> if not needed.
>
> Attached patch is against t2's CVS HEAD, if my opinion is shared.
>
> Cheers,
> Ben
>
> --
> Benjamin Peter +49-69-96244395
> Application Engineer Moerfelder Landstr. 55
> (zentropy:partners) 60598 Frankfurt, Germany
> ----
>
> Index: src/java/org/apache/turbine/Turbine.java
> ===================================================================
> RCS file: /home/cvspublic/jakarta-turbine-2/src/java/org/apache/turbine/Turbine.java,v
> retrieving revision 1.13
> diff -u -r1.13 Turbine.java
> --- src/java/org/apache/turbine/Turbine.java 29 Mar 2002 15:57:03 -0000 1.13
> +++ src/java/org/apache/turbine/Turbine.java 13 Apr 2002 03:48:35 -0000
> @@ -71,7 +71,6 @@
> import org.apache.stratum.lifecycle.Initializable;
> import org.apache.turbine.modules.ActionLoader;
> import org.apache.turbine.modules.PageLoader;
> -import org.apache.turbine.modules.actions.sessionvalidator.SessionValidator;
> import org.apache.turbine.util.DynamicURI;
> import org.apache.turbine.util.Log;
> import org.apache.turbine.util.RunData;
> @@ -284,29 +283,26 @@
> */
> public final void init(RunData data)
> {
> - if (firstDoGet)
> + synchronized (Turbine.class)
> {
> - synchronized (Turbine.class)
> + if (firstDoGet)
> {
> - if (firstDoGet)
> - {
> - serverName = data.getRequest().getServerName();
> - serverPort = Integer.toString(data.getRequest().getServerPort());
> - serverScheme = data.getRequest().getScheme();
> -
> - // Store the context path for tools like ContentURI and
> - // the UIManager that use webapp context path information
> - // for constructing URLs.
> - contextPath = data.getRequest().getContextPath();
> -
> - log("Turbine: Starting HTTP initialization of services");
> - TurbineServices.getInstance().initServices(data);
> - log("Turbine: Completed HTTP initialization of services");
> -
> - // Mark that we're done.
> - firstDoGet = false;
> - }
> - }
> + serverName = data.getRequest().getServerName();
> + serverPort = Integer.toString(data.getRequest().getServerPort());
> + serverScheme = data.getRequest().getScheme();
> +
> + // Store the context path for tools like ContentURI and
> + // the UIManager that use webapp context path information
> + // for constructing URLs.
> + contextPath = data.getRequest().getContextPath();
> +
> + log("Turbine: Starting HTTP initialization of services");
> + TurbineServices.getInstance().initServices(data);
> + log("Turbine: Completed HTTP initialization of services");
> +
> + // Mark that we're done.
> + firstDoGet = false;
> + }
> }
> }
>
> @@ -397,7 +393,10 @@
> // If this is the first invocation, perform some
> // initialization. Certain services need RunData to initialize
> // themselves.
> - init(data);
> + if ( firstDoGet )
> + {
> + init(data);
> + }
>
> // set the session timeout if specified in turbine's properties
> // file if this is a new session
> @@ -413,11 +412,6 @@
> // Fill in the screen and action variables.
> data.setScreen ( data.getParameters().getString("screen") );
> data.setAction ( data.getParameters().getString("action") );
> -
> - // Get the instance of the Session Validator.
> - SessionValidator sessionValidator = (SessionValidator)ActionLoader
> - .getInstance().getInstance(TurbineResources.getString(
> - "action.sessionvalidator"));
>
> // Special case for login and logout, this must happen before the
> // session validator is executed in order either to allow a user to
>
> ----
>
> --
> To unsubscribe, e-mail: <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>