myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: EL method invocation performance
Date Wed, 25 Aug 2010 17:52:52 GMT
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