-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup and optimize InvocationContext implementation #4577
Conversation
...nt-projects/arc/runtime/src/main/java/io/quarkus/arc/LifecycleCallbackInvocationContext.java
Outdated
Show resolved
Hide resolved
...nt-projects/arc/runtime/src/main/java/io/quarkus/arc/LifecycleCallbackInvocationContext.java
Outdated
Show resolved
Hide resolved
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/AbstractInvocationContext.java
Show resolved
Hide resolved
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/AbstractInvocationContext.java
Outdated
Show resolved
Hide resolved
I've added some comments hoping they could be useful, but this is not my area of expertise so I'll leave it for others to do a real review. Feel free to ignore me, I'm mostly trying to understand this :) |
Thanks @Sanne! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really like the optimizations, thanks for finding the time to do that! :)
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/AbstractInvocationContext.java
Outdated
Show resolved
Hide resolved
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/InvocationContexts.java
Outdated
Show resolved
Hide resolved
...nt-projects/arc/runtime/src/main/java/io/quarkus/arc/LifecycleCallbackInvocationContext.java
Outdated
Show resolved
Hide resolved
...nt-projects/arc/runtime/src/main/java/io/quarkus/arc/LifecycleCallbackInvocationContext.java
Outdated
Show resolved
Hide resolved
- cache interceptor bindings in intercepted subclasses - resolves quarkusio#4552
The failing test is very likely unrelated: #4626 |
A simple (and naive) microbenchmark shows that we can get almost 5x bigger throughput compared to 0.24.0. Also the number of allocations should be significantly reduced for each intercepted method invocation.