Hello, What version of AspectJ are you on?
Andy On 13 May 2010 03:22, Ashank <[email protected]> wrote: > > Hello! > > > I've been having heap space build up issue when using AspectJ with my web > application in tomcat. I am new to memory profiling. I used JConsole and jmx > to monitor my web application and see the eden space regularly build up and > fall down (may be normal behavior). As and when I use my web application, > browse some JSP pages in it and execute some classes, I monitor the process > in windows TaskManager and the memory used builds up steadily until it is 4 > times that of what it takes without AspectJ; even taking more than 100MB > from -Xmx option to java. It does not seem to behave like a leak. If I > manually perform GC, the used heap memory comes down to acceptable levels > whereas the committed memory and process memory (in windows task manager) > stays the same. I created some heap dumps in various stages and studied them > using IBM heap analyzer and I regularly see the ApplicationShutdownHooks > object occupy atleast 75% of the heap space. I have included some excerpts > from the heap analyzer tree view for illustration. > > It starts off like this.... > > 46,663,513 (87%) [76] 2 class java/lang/ApplicationShutdownHooks 0x10192a08 > 46,663,437 (87%) [36] 1 java/util/IdentityHashMap 0x143491d0 > 46,663,401 (87%) [256] 4 array of [Ljava/lang/Object; 0x143491f8 > 46,662,794 (87%) [108] 6 java/util/logging/LogManager$Cleaner 0x14349308 > 34,055,487 (63%) [43] 4 java/lang/ThreadGroup 0x14110738 > 33,121,075 (61%) [43] 3 java/lang/ThreadGroup 0x14110768 > 33,113,794 (61%) [32] 8 array of [Ljava/lang/Thread; 0x14110798 > 33,089,033 (61%) [104] 7 java/lang/Thread 0x172b1628 > 33,088,750 (61%) [146] 27 > org/apache/catalina/loader/WebappClassLoader 0x144298b0 > 29,174,994 (54%) [21] 1 java/security/AccessControlContext > 0x1442a9a8 > 29,174,973 (54%) [8] 2 array of [Ljava/security/ProtectionDomain; > 0x1442a9c0 > 29,173,778 (54%) [26] 4 java/security/ProtectionDomain 0x1413d6d0 > 29,172,921 (54%) [105] 18 > org/apache/catalina/loader/StandardClassLoader 0x1413d860 > 28,822,272 (53%) [24] 1 java/util/Vector 0x1413e0b0 > 28,822,248 (53%) [1,280] 289 array of [Ljava/lang/Object; > 0x14575ea0 > > > The following sections show some aspectj classes deep down in the same heap > dump tree view > > 4,027,262 (7%) [128] 14 org/apache/tomcat/util/threads/ThreadWithAttributes > 0x146c5720 > 3,634,063 (6%) [20] 1 java/lang/ThreadLocal$ThreadLocalMap 0x1566f1b8 > 3,634,043 (6%) [128] 14 array of > [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; 0x15e60a78 > 1,633,532 (3%) [28] 3 java/lang/ThreadLocal$ThreadLocalMap$Entry > 0x1566f210 > 1,633,504 (3%) [16] 1 org/aspectj/weaver/tools/WeavingAdaptor$1 > 0x1427cad8 > 1,633,488 (3%) [122] 24 > org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor 0x1427cae8 > 1,574,501 (2%) [171] 18 org/aspectj/weaver/ltw/LTWWorld 0x1427cb68 > 1,263,000 (2%) [61] 9 org/aspectj/weaver/CrosscuttingMembersSet > 0x142b3e50 > 1,262,519 (2%) [40] 3 java/util/HashMap 0x142b3e90 > 1,262,455 (2%) [64] 8 array of [Ljava/util/HashMap$Entry; > 0x142b3ed8 > 319,167 (0%) [24] 2 java/util/HashMap$Entry 0x142b3f28 > 318,128 (0%) [133] 13 org/aspectj/weaver/ReferenceType 0x142b0148 > 303,121 (0%) [140] 17 org/aspectj/weaver/bcel/BcelObjectType > 0x148b9be0 > 284,449 (0%) [97] 12 org/aspectj/weaver/bcel/LazyClassGen > 0x148be6e8 > 15,058 (0%) [94] 11 org/aspectj/apache/bcel/classfile/JavaClass > 0x148b9e20 > 2,457 (0%) [4] 1 array of > [Lorg/aspectj/weaver/ResolvedPointcutDefinition; 0x148cfa10 > 228 (0%) [16] 2 org/aspectj/weaver/SourceContextImpl 0x148b9d30 > 201 (0%) [25] 2 org/aspectj/weaver/WeaverStateInfo 0x148d0680 > 180 (0%) [24] 1 java/lang/String 0x148b9c70 > 98 (0%) [24] 1 java/lang/String 0x148b9fc0 > 60 (0%) [20] 1 java/util/ArrayList 0x148d0820 > 60 (0%) [20] 1 java/util/ArrayList 0x148d07d0 > 58 (0%) [50] 5 org/aspectj/weaver/patterns/PerFromSuper > 0x148d0778 > 32 (0%) [32] 8 array of [Lorg/aspectj/weaver/ResolvedMember; > 0x148cf9c8 > 24 (0%) [24] 1 java/lang/String 0x148b9fa8 > 24 (0%) [24] 2 java/lang/ref/WeakReference 0x148d0870 > 24 (0%) [24] 2 java/lang/ref/WeakReference 0x148d0888 > 20 (0%) [20] 0 org/aspectj/weaver/AjAttribute$WeaverVersionInfo > 0x148cf9f8 > 8 (0%) [8] 2 array of [Lorg/aspectj/weaver/ResolvedMember; > 0x148cf9b0 > 318,128 (0%) [133] 13 org/aspectj/weaver/ReferenceType > 0x142b0148 > 14,514 (0%) [65] 14 org/aspectj/weaver/CrosscuttingMembers > 0x142b0320 > > > Here is another excerpt branching off from the above tree > > 319,167 (0%) [24] 2 java/util/HashMap$Entry 0x142b3f28 > 318,128 (0%) [133] 13 org/aspectj/weaver/ReferenceType 0x142b0148 > 303,121 (0%) [140] 17 org/aspectj/weaver/bcel/BcelObjectType 0x148b9be0 > 284,449 (0%) [97] 12 org/aspectj/weaver/bcel/LazyClassGen 0x148be6e8 > 276,289 (0%) [20] 1 java/util/ArrayList 0x148c07a8 > 276,269 (0%) [40] 8 array of [Ljava/lang/Object; 0x148c07c0 > 270,593 (0%) [83] 8 org/aspectj/weaver/bcel/LazyMethodGen 0x148c0cf0 > 269,153 (0%) [24] 3 org/aspectj/apache/bcel/generic/InstructionList > 0x148c0f80 > 268,717 (0%) [28] 3 > org/aspectj/apache/bcel/generic/InstructionHandle 0x148c0f98 > 268,491 (0%) [28] 4 > org/aspectj/apache/bcel/generic/InstructionHandle 0x148c0fb8 > After this there is a big list of the above the BCEL InstructionHandle > objects. > > I am not sure what to make of the above data. Is this connected to aspectJ? > As I've mentioned, I notice this only when I enable aspectj in my web > application and include my aspects (which are not carelessly written). > Please help me out as such a memory performance will be a show stopper if > there is no way around! Thanks a lot in advance. > > -Arvind > -- > View this message in context: > http://aspectj.2085585.n4.nabble.com/please-help-heap-space-ballooning-when-I-use-aspectJ-with-my-webapplication-tp2197371p2197371.html > Sent from the AspectJ - users mailing list archive at Nabble.com. > _______________________________________________ > 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
