myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lucio piccoli <lu...@asteriski.com>
Subject Re: myfaces slow startup on GAE
Date Thu, 07 Jun 2012 09:14:10 GMT
hi leonardo

i dont know how your app is starting myfaces in 3secs.
how many faces component lib have u installed?

i have tomahawk, richfaces and onload installed.

with these i see a 10 sec elapsed time.

-lp

On 7 June 2012 17:37, Leonardo Uribe <lu4242@gmail.com> wrote:

> Hi Lucio
>
> In my test app I have:
>
>    <context-param>
>        <param-name>org.apache.myfaces.GAE_JSF_JAR_FILES</param-name>
>        <param-value>none</param-value>
>    </context-param>
>
>     <context-param>
>
>  <param-name>org.apache.myfaces.GAE_JSF_ANNOTATIONS_JAR_FILES</param-name>
>        <param-value>none</param-value>
>    </context-param>
>
> Disabling annotation scanning and faces-config.xml or .taglib.xml
> finding in jar files.
>
> If I use the hack proposed before using GAEFacesConfigurationMerger
> (store config into
> datastore to retrieve it later) I have around 7 seconds. Without that
> hack I can see
> 9 seconds.
>
> Let's check this in deep. In the log I can see at start:
>
> 2012-06-07 09:08:52.618
> org.apache.myfaces.webapp.Jsp20FacesInitializer
> initContainerIntegration: This application isn't running in a JSP 2.1
> container.
>
> From the moment GAEFacesConfigurationMerger takes the config from the
> datastore
>
> 2012-06-07 09:08:53.917 javax.servlet.ServletContext log:
> Configuration found in DataStore, reading it
> 2012-06-07 09:08:54.121 javax.servlet.ServletContext log: Read
> complete, returning
>
> To the last line in the log
>
> 2012-06-07 09:08:54.928
> org.apache.myfaces.webapp.WebConfigParamsLogger logWebContextParams:
> No context init parameter 'org.apache.myfaces.FACES_INIT_PLUGINS'
> found.
> 2012-06-07 09:08:57.446 This request caused a new process to be
> started for your application, and thus caused your application code to
> be loaded for the first time. This requ
>
> You can see MyFaces takes about 1 second to initialize after read the
> config from the datastore and 2.4 seconds overall. So from about 7
> seconds it takes in my config, 2.4 or 3 are spent in MyFaces init and
> the remaining ones are related to GAE.
>
> To make more simple use GAEFacesConfigurationMerger, I have attached
> the .java and the file that should be on META-INF/services/ as
> resource file, (so if the file is in your war, it should
> be in
> /WEB-INF/classes/META-INF/services/org.apache.myfaces.spi.FacesConfigurationMerger
> )
>
> It is still a mystery why it takes one second between the first line
> and before read the config from the DataStore. The only code I can see
> is the one who tries to lookup the SPI interface.
>
> Please try with the previous tricks and let us know if it worked or not.
>
> regards,
>
> Leonardo Uribe
>
> 2012/6/7 lucio piccoli <lucio@asteriski.com>:
> > hi leonardo
> >
> > i have done some testing with the patch version and parameters.
> >
> > my results are below.
> >
> > setting                      JSF statup time(sec)
> > --------------------------------------------------------
> > unpatched                          11
> > meta-data=true only           5
> > GAE_JSF_JAR web.xml      10
> >
> >
> > the clear winner was using the meta-data=true setting.
> >
> > *however* when using the above settings my applications fails to work
> > correctly.
> >
> > it errors on finding a simple actionListener property on a backing bean.
> I
> > have no idea what is going on.
> >
> > it has become too complicated for me.
> >
> > My only option at present is to use the existing slow load code.
> >
> >
> > -lp
> >
> >
> >
> > On 7 June 2012 02:58, Leonardo Uribe <lu4242@gmail.com> wrote:
> >
> >> Hi
> >>
> >> The patch include these two params:
> >>
> >>   /**
> >>     * When the application runs inside Google Application Engine
> >> container (GAE),
> >>     * indicate which jar files should be scanned for files
> >> (faces-config, facelets taglib
> >>     * or annotations). It accept simple wildcard patterns like
> >> myfavoritejsflib-*.jar or
> >>     * myfavoritejsflib-1.1.?.jar. By default, all the classpath is
> >> scanned for files
> >>     * annotations (so it adds an small delay on startup).
> >>     */
> >>    @JSFWebConfigParam(since = "2.1.8, 2.0.14", expectedValues="none,
> >> myfavoritejsflib-*.jar",
> >>            tags="performance, GAE")
> >>    public static final String INIT_PARAM_GAE_JSF_JAR_FILES =
> >> "org.apache.myfaces.GAE_JSF_JAR_FILES";
> >>    public final static String INIT_PARAM_GAE_JSF_JAR_FILES_DEFAULT =
> null;
> >>
> >>    /**
> >>     * When the application runs inside Google Application Engine
> >> container (GAE),
> >>     * indicate which jar files should be scanned for annotations.
> >> This param overrides
> >>     * org.apache.myfaces.GAE_JSF_JAR_FILES behavior that tries to
> >> find faces-config.xml or
> >>     * files ending with .faces-config.xml in /META-INF folder and if
> >> that so, try to
> >>     * find JSF annotations in the whole jar file. It accept simple
> >> wildcard patterns
> >>     * like myfavoritejsflib-*.jar or myfavoritejsflib-1.1.?.jar.
> >>     * By default, all the classpath is scanned for annotations (so it
> >> adds an small
> >>     * delay on startup).
> >>     */
> >>    @JSFWebConfigParam(since = "2.1.8, 2.0.14", expectedValues="none,
> >> myfavoritejsflib-*.jar",
> >>            tags="performance, GAE")
> >>    public static final String INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES =
> >>            "org.apache.myfaces.GAE_JSF_ANNOTATIONS_JAR_FILES";
> >>    public final static String
> >> INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES_DEFAULT = null;
> >>
> >> with org.apache.myfaces.GAE_JSF_ANNOTATIONS_JAR_FILES, you can control
> >> annotation scanning in jar files. Other option is use
> >> WEB-INF/faces-config.xml
> >> metadata-complete="true" flag (see jsf spec section 11.5.1) to disable
> >> annotation scanning
> >> on jar files at all.
> >>
> >> regards,
> >>
> >> Leonardo Uribe
> >>
> >> 2012/6/6 lucio piccoli <lucio@asteriski.com>:
> >> > hi leonardo
> >> >
> >> > i have done the following
> >> > 1.replaced myfaces-core/api with the patched bundle.jar
> >> > 2. added the following to web.xml
> >> >  <context-param>
> >> >        <param-name>org.apache.myfaces.GAE_JSF_JAR_FILES</param-name>
> >> >        <param-value>none</param-value>
> >> >    </context-param>
> >> >
> >> > the startup time has not changed.
> >> > it is still scanning jars.
> >> > from 9:33:11 to 9:33:18
> >> > See attached log.
> >> >
> >> > INFO: This application isn't running in a JSP 2.1 container.
> >> > 06/06/2012 9:33:10 AM
> >> > org.apache.myfaces.config.DefaultFacesConfigurationProvide
> >> > r getStandardFacesConfig
> >> > INFO: Reading standard config META-INF/standard-faces-config.xml
> >> > 06/06/2012 9:33:11 AM
> >> > org.apache.myfaces.config.DefaultFacesConfigurationProvide
> >> > r getWebAppFacesConfig
> >> > INFO: Reading config /WEB-INF/faces-config.xml
> >> > 06/06/2012 9:33:15 AM
> >> > org.apache.myfaces.config.DefaultFacesConfigurationProvide
> >> > r getClassloaderFacesConfig
> >> > INFO: Reading config :
> >> > jar:file:/C:/src/miiingle/venueportal/trunk/target/venuep
> >> >
> >>
> ortal-1.0-SNAPSHOT/WEB-INF/lib/richfaces-components-ui-4.2.1.Final.jar!/META-INF
> >> > /faces-config.xml
> >> > 06/06/2012 9:33:18 AM
> >> > org.apache.myfaces.config.DefaultFacesConfigurationProvide
> >> > r getClassloaderFacesConfig
> >> > INFO: Reading config :
> >> > jar:file:/C:/src/miiingle/venueportal/trunk/target/venuep
> >> >
> >>
> ortal-1.0-SNAPSHOT/WEB-INF/lib/richfaces-core-impl-4.2.1.Final.jar!/META-INF/fac
> >> > es-config.xml
> >> > 06/06/2012 9:33:18 AM
> >> > org.apache.myfaces.config.DefaultFacesConfigurationProvide
> >> > r getClassloaderFacesConfig
> >> > INFO: Reading config :
> >> > jar:file:/C:/src/miiingle/venueportal/trunk/target/venuep
> >> >
> >>
> ortal-1.0-SNAPSHOT/WEB-INF/lib/tomahawk20-1.1.13.jar!/META-INF/faces-config.xml
> >> > 06/06/2012 9:33:18 AM org.apache.myfaces.config.LogMetaInfUtils
> >> logArtifact
> >> > INFO: Artifact 'myfaces-bundle' was found in version '2.1.8-SNAPSHOT'
> >> from
> >> > path
> >> >
> >>
> 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF
> >> > /lib/myfaces-bundle-2.1.8-SNAPSHOT.jar'
> >> > 06/06/2012 9:33:18 AM org.apache.myfaces.config.LogMetaInfUtils
> >> logArtifact
> >> > INFO: Artifact 'tomahawk20' was found in version '1.1.13' from path
> >> > 'file:/C:/sr
> >> >
> >>
> c/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/tomahaw
> >> > k20-1.1.13.jar'
> >> >
> >> > -lp
> >>
> >
> >
> >
> > --
> > regards
> >
> > -Lucio Piccoli
> >
> > Director
> > ------------------------------
> > www.asteriski.com
>



-- 
regards

-Lucio Piccoli

Director
------------------------------
www.asteriski.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message