Hi Mark,

I don't understand your question fully. There are no JSF managed beans
involved: 

org.apache.myfaces.el.unified.resolver.ManagedBeanResolver
getValue invocations: 63331 getValue hits: 0

"getValue hits" is zero - it means that resolver doesn't not resolve
property with context.setPropertyResolved(true).

The view is composed from two lagre tables and those tables are origin
for variable in request scope : 

<h:dataTable var="pojoObject"
  <h:column>
    #{requestScope.pojoObject.property1.property2}

If you remove the "requestScope" implicit object from expression it
changes only the number for ImplicitObjectResolver, not for
BeanELResolver.

Regards,

Kočičák

Mark Struberg píše v Po 28. 03. 2011 v 19:57 +0100:
> your numbers imply that one uses JSF @ManagedBeans, isn't?
> 
> LieGrue,
> strub
> 
> --- On Mon, 3/28/11, Martin Koci <[email protected]> wrote:
> 
> > From: Martin Koci <[email protected]>
> > Subject: [core] performance: an optimal ELResolvers chain for POJO-based 
> > apps
> > To: [email protected]
> > Date: Monday, March 28, 2011, 6:50 PM
> > Hi, 
> > 
> > I'm optimizing render response on a large view (takes over
> > 3 secs to
> > render) and below you can see results of unsorted and
> > unfiltered
> > ELResolvers chain. The most important info is that 
> > BeanELResolver
> > resolves property over 40000x from 64000 invocations. The
> > second place
> > belongs to ImplicitObjectResolver with over 20000 resolved
> > properties.
> > The reason why BeanElResolver is so successful is because
> > majority of
> > expressions looks like
> > {requestScope.pojoObject.propertyOne.propertyTwo}. 
> > 
> > 
> > The obvious optimalization would be move the BeanELResolver
> > to top. But
> > you cannot: EL spec 2.2 javax.el.BeanELResolver: "If the
> > property is not
> > found or is not readable, a PropertyNotFoundException is
> > thrown."  So
> > UEL spec. mandates that BeanELResolver must be last one
> > which resolves
> > not-null base and a property on that base.
> > 
> > Do you know the reason for that? Do you have any ideas how
> > to move
> > BeanELResolver to top and avoid thousands of "empty"
> > geValue
> > invocations?
> > 
> > Thanks, 
> > 
> > Kočičák
> > 
> > 
> > Results:
> > ImplicitObjectResolver:
> > getValue invocations: 64452 getValue hits: 21018
> > 
> > org.apache.myfaces.el.unified.resolver.CompositeComponentELResolver:
> > getValue invocations: 64336 getValue hits: 30
> > 
> > org.richfaces.skin.SkinPropertiesELResolver
> > getValue invocations: 64306 getValue hits: 0
> > 
> > org.richfaces.resource.ResourceParameterELResolver
> > getValue invocations: 64306 getValue hits: 0
> > 
> > org.jboss.weld.environment.servlet.jsf.WeldApplication
> > $LazyBeanManagerIntegrationELResolver
> > getValue invocations: 64306 getValue hits: 975
> > 
> > org.apache.myfaces.el.unified.resolver.ManagedBeanResolver
> > getValue invocations: 63331 getValue hits: 0
> > 
> > org.apache.myfaces.el.unified.resolver.ResourceResolver
> > getValue invocations: 63331 getValue hits: 64
> > 
> > javax.el.ResourceBundleELResolver
> > getValue invocations: 63267 getValue hits: 3
> > 
> > org.apache.myfaces.el.unified.resolver.ResourceBundleResolver
> > getValue invocations: 63264 getValue hits: 3
> > 
> > javax.el.MapELResolver:
> > getValue invocations: 63261 getValue hits: 1069
> > 
> > javax.el.ListELResolver:
> > getValue invocations: 62192 getValue hits: 0
> > 
> > javax.el.ArrayELResolver:
> > getValue invocations: 62192 getValue hits: 0
> > 
> > javax.el.BeanELResolver:
> > getValue invocations: 62192 getValue hits: 40563
> > 
> > org.apache.myfaces.el.unified.resolver.ScopedAttributeResolver
> > getValue invocations: 21629 getValue hits: 582
> > 
> > 
> 
> 
>       
> 


Reply via email to