summaryrefslogtreecommitdiffstats
path: root/weaver/testdata/TjpBeforeHelloWorld.txt
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2004-01-24 02:28:54 +0000
committerjhugunin <jhugunin>2004-01-24 02:28:54 +0000
commit0c833438dadeeb26659cd901870d18d2c103658b (patch)
treecbe369e1ea2e90cdfabf09f9b343da4e9a930621 /weaver/testdata/TjpBeforeHelloWorld.txt
parent2b4e2512530a5d0a12e92071eb2e3198722dcd6b (diff)
downloadaspectj-0c833438dadeeb26659cd901870d18d2c103658b.tar.gz
aspectj-0c833438dadeeb26659cd901870d18d2c103658b.zip
Implemented feature for Bugzilla Bug 48091
Lazy instantiation of thisJoinPoint Speed-ups of 10-100X are measured even when running a small test case with minimal GC issues. The actual feature implemented is that thisJoinPoint objects are only created just before calling the method for advice that requires them. To take advantage of this feature you must use an if PCD or some other dynamic test that occurs in the PCD not the advice body to guard the expensive creation of the thisJoinPoint object. -XlazyTjp flag must be passed to compiler to enable this feature. If any around advice is present on the joinpoint then lazy instantiation will be disabled. An Xlint warning will be displayed in this case. As a related optimization, several helper methods were added to Factory.makeJP to reduce the code size when thisJoinPoint is used.
Diffstat (limited to 'weaver/testdata/TjpBeforeHelloWorld.txt')
-rw-r--r--weaver/testdata/TjpBeforeHelloWorld.txt48
1 files changed, 13 insertions, 35 deletions
diff --git a/weaver/testdata/TjpBeforeHelloWorld.txt b/weaver/testdata/TjpBeforeHelloWorld.txt
index 07649f713..ce462ec68 100644
--- a/weaver/testdata/TjpBeforeHelloWorld.txt
+++ b/weaver/testdata/TjpBeforeHelloWorld.txt
@@ -9,11 +9,7 @@ public class HelloWorld extends java.lang.Object:
GETSTATIC HelloWorld.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$StaticPart;
ALOAD_0
ALOAD_0
- BIPUSH 0
- ANEWARRAY java.lang.Object
- ASTORE_2
- ALOAD_2
- INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
+ INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
ASTORE_1
constructor-execution(void HelloWorld.<init>())
| ALOAD_1
@@ -24,31 +20,20 @@ public class HelloWorld extends java.lang.Object:
public static void main(String[]):
ALOAD_0
- ASTORE 9
+ ASTORE 6
GETSTATIC HelloWorld.ajc$tjp_3 Lorg/aspectj/lang/JoinPoint$StaticPart;
ACONST_NULL
ACONST_NULL
- BIPUSH 1
- ANEWARRAY java.lang.Object
- ASTORE 8
- ALOAD 8
- BIPUSH 0
- ALOAD 9
- AASTORE
- ALOAD 8
- INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
- ASTORE 7
+ ALOAD 6
+ INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
+ ASTORE 5
method-execution(void HelloWorld.main(java.lang.String[]))
- | ALOAD 7
+ | ALOAD 5
| INVOKESTATIC Aspect.ajc_before (Lorg/aspectj/lang/JoinPoint;)V
| GETSTATIC HelloWorld.ajc$tjp_1 Lorg/aspectj/lang/JoinPoint$StaticPart;
| ACONST_NULL
| ACONST_NULL
- | BIPUSH 0
- | ANEWARRAY java.lang.Object
- | ASTORE_2
- | ALOAD_2
- | INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
+ | INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
| ASTORE_1
| field-get(java.io.PrintStream java.lang.System.out)
| | ALOAD_1
@@ -56,26 +41,19 @@ public class HelloWorld extends java.lang.Object:
| | GETSTATIC java.lang.System.out Ljava/io/PrintStream; (line 8)
| field-get(java.io.PrintStream java.lang.System.out)
| LDC "hello world" (line 9)
+ | ASTORE_3
| ASTORE 4
- | ASTORE 5
| GETSTATIC HelloWorld.ajc$tjp_2 Lorg/aspectj/lang/JoinPoint$StaticPart;
| ACONST_NULL
- | ALOAD 5
- | BIPUSH 1
- | ANEWARRAY java.lang.Object
- | ASTORE 6
- | ALOAD 6
- | BIPUSH 0
| ALOAD 4
- | AASTORE
- | ALOAD 6
- | INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
- | ASTORE_3
+ | ALOAD_3
+ | INVOKESTATIC org.aspectj.runtime.reflect.Factory.makeJP (Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
+ | ASTORE_2
| method-call(void java.io.PrintStream.println(java.lang.String))
- | | ALOAD_3
+ | | ALOAD_2
| | INVOKESTATIC Aspect.ajc_before (Lorg/aspectj/lang/JoinPoint;)V
- | | ALOAD 5
| | ALOAD 4
+ | | ALOAD_3
| | INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
| method-call(void java.io.PrintStream.println(java.lang.String))
| RETURN (line 11)