Same situation for clientId: in "stable" component tree is clientId always the same (state saving depends on it)
unfortunately has UIComponent no method setClientId. But we can try set it via reflexion and compare if it brings an improvement or not. Currently getClientId() uses lazy init and involves: findParentNamingContainer namingContainer.getContainerClientId stringBuilder appends renderer.convertClientId Martin Koci píše v Pá 17. 02. 2012 v 18:56 +0100: > Hi, > > in situation, where no build-time tags (c:if, co:foreach, ...) and no > ui:include src="#{}" are used (and no direct component.getChildren() > manipulation of course), builds VDL.buildView every time the same > component structure (same graph). > > In this case compute myfaces some informations again and again but every > time with same results. For example, creating of unique ids is very > expensive: > > FaceletContext.generateUniqueId > FaceletCompositionContext.generateUniqueComponentId > UniqueIdVendor.createUniqueId > > in ComponentTagHandlerDelegate.apply(FaceletContext, UIComponent) > > Can we cache this ids at ComponentTagHandlerDelegate in production in > case of view without build time modifications ? This is similar to [1]. > > Same situation with @ResourceDependency annotations: ApplicationImpl. > _handleAttachedResourceDependencyAnnotations computes the same result > with every request/response. > > Others ideas what can be cached? > > Regards, > > Kočičák > > > [1] https://issues.apache.org/jira/browse/MYFACES-3160 > > > > > > > >