Add JMH benchmark infrastructure
Prior to this commit, the Spring Framework test suite would rely only on "Performance" tests associated with a specific CI build. As outlined in gh-24830, the way they're built and executed is not working well anymore. This commit introduces a new JMH benchmark infrastructure in the build. The goal here is not to run those benchmarks as part of a CI build, but rather provide a proper infrastructure for writing and locally running micro-benchmarks when working on specific optimizations. This commit adds and configures a Gradle JMH plugin to allow for JMH benchmark classes in Spring Framework modules (in `src/jmh/java` of each `spring-*` module). It's also relaxing the checkstyle rules for JMH classes, especially around Javadoc rules: this code is not meant to have Javadocs. Finally, this commit links to a new Wiki page on the project GitHub repository documenting the infrastructure and helping contributors to run and design benchmarks. See gh-24830
This commit is contained in:
@@ -7,6 +7,9 @@
|
||||
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/]java[\\/]org[\\/]springframework[\\/].+(Tests|Suite)" checks="IllegalImport" id="bannedJUnitJupiterImports" />
|
||||
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/]java[\\/]" checks="SpringJUnit5" message="should not be public" />
|
||||
|
||||
<!-- JMH benchmarks -->
|
||||
<suppress files="[\\/]src[\\/]jmh[\\/]java[\\/]org[\\/]springframework[\\/]" checks="JavadocVariable|JavadocStyle" />
|
||||
|
||||
<!-- spring-beans -->
|
||||
<suppress files="TypeMismatchException" checks="MutableException"/>
|
||||
<suppress files="BeanCreationException" checks="MutableException"/>
|
||||
|
||||
Reference in New Issue
Block a user