Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Figuring out which types need to be transformed is quite costly. Measuring the time spent in
opentelemetry-java-instrumentation/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/bytebuddy/LoggingFailSafeMatcher.java
Lines 44 to 51 in 7b842fe
while starting Liferay
This pr decomposes matchers with reflection and divides them into 3 categories: matches by class name, matches by class name in hierarchy, something else. The 3rd category has about 10 matchers. Transformer list inside byte buddy is replaced with a proxy that when we know that current class isn’t going to match any of the name or hierarchy matchers just returns the matchers from the 3rd category. Because we can get the super type names in
defineClass
we can quickly tell whether there is a hierarchy matcher that applies to given class.