Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] aspectj and jsp load

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 <yohan.chandra@xxxxxxxxx> 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
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>


Back to the top