myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Koci <martin.kocicak.k...@gmail.com>
Subject Re: EL method invocation performance
Date Thu, 28 Oct 2010 18:34:05 GMT
Hi,
> hi martin,
> 
> 
> it would be nice to get more details about the juel issues.

Christian fixed them promptly in JUEL's svn:

http://sourceforge.net/tracker/?func=detail&aid=3095122&group_id=165179&atid=834616

http://sourceforge.net/tracker/?func=detail&aid=3031783&group_id=165179&atid=834616


Back to original topic: JUEL caches the ExpressionFactory instance and
thus does not have discussed performance problem.


> 
> 
> regards,
> gerhard 
> 
> http://www.irian.at
> 
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
> 
> Professional Support for Apache MyFaces
> 
> 
> 
> 
> 2010/10/19 Martin Koci <martin.kocicak.koci@gmail.com>
>         Hi,
>         
>         some news about EL method invocations:
>         
>         1)  Geronimo EL API implementation has this problem too:
>         https://issues.apache.org/jira/browse/GERONIMO-5657
>         
>         2) UEL bug is still open: 
>         https://uel.dev.java.net/issues/show_bug.cgi?id=19
>         
>         
>         3) JUEL doesn't not work for my test cases, for example it
>         doesn't find
>         some public methods so I cannot say if JUEL has this problem
>         now.
>         
>         
>         My today's recommedation (which can change tommorow) is: if
>         you want EL
>         method invocations without file asscess within
>         (without /META-INF/services reading):
>         
>         A) apply GERONIMO-5657 patch to
>         http://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-el_2.2_spec/ and
build this EL-API
>         
>         B) use impl part from uel.dev.java.net as EL-impl or tomcat's
>         EL impl
>         
>         
>         Please note that uel.dev.java.net API suffers from classic
>         leaking
>         classloader problem too - it uses Class instance as key in
>         static Map :
>         see MYFACES-2942 for details. Maybe we should put a warning
>         about these
>         two issues at http://wiki.apache.org/myfaces/HowToEnableEl22 ?
>         
>         
>         Regards,
>         
>         Kocicak
>         
>         Martin Koci píše v St 25. 08. 2010 v 20:52 +0200: 
>         
>         > Hi,
>         >
>         > I'll try it but not today :) Optimization is my priority
>         task for next
>         > few months and certainly I'll compare all four (or more?) EL
>         > implementations.
>         >
>         > Mark Struberg píše v St 25. 08. 2010 v 17:52 +0000:
>         > > Martin, could you please give juel a quick try? Would be
>         interested if if also
>         > > suffers from this problem.
>         > >
>         > > You can find a slightly tweaked (bugfixed) version of it
>         on my github page
>         > >
>         > > http://github.com/struberg/juel
>         > >
>         > > The original is on juel.sourceforge.net
>         > >
>         > > LieGrue,
>         > > strub
>         > >
>         > >
>         > > >
>         > > >From: Jakob Korherr <jakob.korherr@gmail.com>
>         > > >To: MyFaces Development <dev@myfaces.apache.org>
>         > > >Sent: Wed, August 25, 2010 5:10:09 PM
>         > > >Subject: Re: EL method invocation performance
>         > > >
>         > > >Hi,
>         > > >
>         > > >Does this really have to happen at every method
>         invocation or is this an
>         > > >implementation problem?
>         > > >
>         > > >If it is an implementation problem and can be circumvent
>         in any way, I would
>         > > >contact the Glassfish and Tomcat developers about this ;)
>         > > >
>         > > >Regards,
>         > > >Jakob
>         > > >
>         > > >
>         > > >2010/8/25 Ivan <xhhsld@gmail.com>
>         > > >
>         > > >How about trying the el api published by Geronimo ? it
>         caches the
>         > > >ExpressionFactory to avoid the search action by default.
>         > > >>
>         > > >>
>         > > >>2010/8/25 Martin Koci <martin.koci@aura.cz>
>         > > >>
>         > > >>
>         > > >>Hi,
>         > > >>>
>         > > >>>this problem is not in myfaces but affects performance
>         especially in
>         > > >>>render response phase:
>         > > >>>
>         > > >>>EL 2.2 introduces method invocation but if you try use
>         it like
>         > > >>>rendered="#{bean.getRendered(param)}" there is an
>         unpleasant surprise:
>         > > >>>both implementations of BeanELResolver (Glassfish,
>         Tomcat) use this
>         > > >>>construction during method invocation:
>         > > >>>
>         > > >>>ExpressionFactory exprFactory =
>         ExpressionFactory.newInstance();
>         > > >>>
>         > > >>>That newInstance() always involves FactoryFinder
>         mechanism, callstack
>         > > >>>then looks like :
>         > > >>>
>         > >
>         >>>org.apache.catalina.loader.WebappClassLoader.findResourceInternal
>         > > >>>
>         org.apache.catalina.loader.WebappClassLoader.findResource
>         > > >>>
>         org.apache.catalina.loader.WebappClassLoader.getResourceAsStream
>         > > >>>  javax.el.FactoryFinder.find(String, String,
>         Properties)
>         > > >>>   javax.el.ExpressionFactory.newInstance(Properties)
>         > > >>>    javax.el.ExpressionFactory.newInstance()
>         > > >>>     javax.el.BeanELResolver.invokeMethod(Method,
>         Object, Object[])
>         > > >>>
>         > > >>>
>         > > >>>Always tries to locale factory implementation, that
>         > > >>>means /META-INF/services reading! This is not problem
>         in myfaces, but
>         > > >>>users don't distinguish between JSF and EL well.
>         > > >>>
>         > > >>>Any ideas?
>         > > >>>
>         > > >>>Regards,
>         > > >>>
>         > > >>>Martin Kočí
>         > > >>>
>         > >
>         >>>https://uel.dev.java.net/svn/uel/trunk/api/src/main/java/javax/el/BeanELResolver.java
>         > > >>>
>         > > >>>
>         > >
>         >>>http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/BeanELResolver.java
>         > > >>>
>         > > >>>
>         > > >>>
>         > > >>>
>         > > >>
>         > > >>
>         > > >>--
>         > > >>Ivan
>         > > >>
>         > > >
>         > > >
>         > > >--
>         > > >Jakob Korherr
>         > > >
>         > > >blog: http://www.jakobk.com
>         > > >twitter: http://twitter.com/jakobkorherr
>         > > >work: http://www.irian.at
>         > > >
>         > >
>         > >
>         > >
>         > >
>         >
>         >
>         >
>         
>         
>         
> 
> 






Mime
View raw message