Hi, > I also enabled -debug -verbose -showWeaveInfo and found out that there were > lots of classloaders was registered and initialized. From total of 98, 50 of > them are JSPClassLoader, is there anyway to exclude these JSPClassLoader > instances?
There is no way to do this currently. I've mentioned implementing this on the list previously, but it hasn't been serious enough that it bubbled to the top of the priorities. Are you confident your pointcuts aren't doing unnecessary matching, as that will also hurt startup time. Are they all using within() clauses to guard the set of types against which they will apply? You might want to use the timers support to see if the pointcuts are spending a lot of time matching: http://andrewclement.blogspot.com/2009/a11/aspectj-profiling-pointcut-matching.html cheers, Andy On 28 December 2011 13:02, yohan chandra <[email protected]> wrote: > Hi, > > I am using LTW in our web application (appserver=Weblogic 10), during the > first load of the jsp into the jvm we found out that aspectj is causing > significant overhead. > we precompiled our jsp, if we disable aspectj the jsp is loaded less than > 1s, but if we enable aspectj the jsp is loaded >7s (approximately 10s). > > here is how we enable/disable aspectj: > enable : add -javaagent:${LIB}/aspectjweaver.jar > disable : simply take out the javaagent > > Is this overhead expected? > > I took the stacktrace and found a lot of aspectj occurences: > "[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default > (self-tuning)'" daemon prio=3 tid=0x02861ee8 nid=0x38 runnable [0x534f9000] > java.lang.Thread.State: RUNNABLE > . . . . > at java.lang.ClassLoader.getResource(ClassLoader.java:998) > at > weblogic.utils.classloaders.GenericClassLoader.getResource(GenericClassLoader.java:187) > at > weblogic.utils.classloaders.ChangeAwareClassLoader.getResource(ChangeAwareClassLoader.java:112) > at java.lang.ClassLoader.getResource(ClassLoader.java:998) > at > weblogic.utils.classloaders.GenericClassLoader.getResource(GenericClassLoader.java:187) > at > org.aspectj.apache.bcel.util.ClassLoaderRepository.toURL(ClassLoaderRepository.java:276) > at > org.aspectj.apache.bcel.util.ClassLoaderRepository.loadClass(ClassLoaderRepository.java:289) > at org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(BcelWorld.java:390) > at org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:373) > at org.aspectj.weaver.ltw.LTWWorld.resolveDelegate(LTWWorld.java:111) > at org.aspectj.weaver.World.resolveToReferenceType(World.java:452) > at org.aspectj.weaver.World.resolve(World.java:298) > at > org.aspectj.weaver.patterns.WildTypePattern.lookupTypeInWorld(WildTypePattern.java:801) > at > org.aspectj.weaver.patterns.WildTypePattern.lookupTypeInWorldIncludingPrefixes(WildTypePattern.java:776) > at > org.aspectj.weaver.patterns.WildTypePattern.resolveBindingsFromFullyQualifiedTypeName(WildTypePattern.java:741) > at > org.aspectj.weaver.patterns.WildTypePattern.resolveBindings(WildTypePattern.java:676) > at > org.aspectj.weaver.patterns.SignaturePattern.resolveBindings(SignaturePattern.java:81) > at > org.aspectj.weaver.patterns.KindedPointcut.resolveBindings(KindedPointcut.java:353) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:82) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:83) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:83) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:83) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:83) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:83) > at > org.aspectj.weaver.patterns.OrPointcut.resolveBindings(OrPointcut.java:83) > at > org.aspectj.weaver.patterns.NotPointcut.resolveBindings(NotPointcut.java:81) > at > org.aspectj.weaver.patterns.AndPointcut.resolveBindings(AndPointcut.java:78) > at > org.aspectj.weaver.patterns.AndPointcut.resolveBindings(AndPointcut.java:79) > at org.aspectj.weaver.patterns.Pointcut.resolve(Pointcut.java:188) > at > org.aspectj.weaver.bcel.AtAjAttributes$LazyResolvedPointcutDefinition.getPointcut(AtAjAttributes.java:1843) > at > org.aspectj.weaver.patterns.ReferencePointcut.concretize1(ReferencePointcut.java:354) > at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:228) > at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:210) > at org.aspectj.weaver.Advice.concretize(Advice.java:396) > at org.aspectj.weaver.bcel.BcelAdvice.concretize(BcelAdvice.java:110) > at > org.aspectj.weaver.CrosscuttingMembers.addShadowMunger(CrosscuttingMembers.java:98) > at > org.aspectj.weaver.CrosscuttingMembers.addShadowMungers(CrosscuttingMembers.java:90) > at > org.aspectj.weaver.ResolvedType.collectCrosscuttingMembers(ResolvedType.java:749) > at > org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:85) > at > org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:69) > at > org.aspectj.weaver.bcel.BcelWeaver.addLibraryAspect(BcelWeaver.java:198) > at > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerAspects(ClassLoaderWeavingAdaptor.java:464) > at > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerDefinitions(ClassLoaderWeavingAdaptor.java:288) > at > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:174) > at > org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:271) > at > org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:276) > at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:254) > at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:90) > - locked <0x5eb19378> (a weblogic.servlet.jsp.JspClassLoader) > at > org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54) > . . . . > > I also enabled -debug -verbose -showWeaveInfo and found out that there were > lots of classloaders was registered and initialized. From total of 98, 50 of > them are JSPClassLoader, is there anyway to exclude these JSPClassLoader > instances? > > Thanks, in advance > > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
