Skip to content

dreis2211/remove-introspector-customizer-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Summary

This project serves a little Java agent that removes the support for looking up Bean Customizers inside java.beans.Introspector. It does so by essentially making the internal findCustomizerClass method a no-op and returning null.

This is inspired by the findings in Spring-Framework:

Where it was revealed that a reasonable amount of time is spent in Introspector. Especially on finding Customizer classes that 99% of Spring applications don't have.

CPU profile

Allocation profile

Usage

NOTE: This agent is not meant to run in production usages and I don't claim this is safe to use and only do so at your own risk.

Before using the agent, you need to build the agent and put it somewhere where you need it:

./gradlew build

Depending on your use-case you might need to put this in place then:

Plain Java

java -javaagent:/path/to/the/agent/remove-introspector-customizer-agent.jar ...

Maven Surefire Tests

E.g. in Maven Surefire tests

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
		<argLine>-javaagent:/path/to/the/agent/remove-introspector-customizer-agent.jar</argLine>
	</configuration>
</plugin>

Gradle Tests

Or for Gradle tests

test {
    jvmArgs '-javaagent:/path/to/the/agent/remove-introspector-customizer-agent.jar'
}

Happy experimenting with measuring eventual impacts.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages