Releases: quick-perf/quickperf
QuickPerf 1.1.0
🚀 New features and improvements
General
- Add Java 16 and Java 17 compatibility @jeanbisutti
SQL
- Add ProfileConnection annotation @jeanbisutti
- Add ExpectNoConnectionLeak annotation @jeanbisutti
- Add AnalyzeSql annotation @FTarfasse
JVM
- The ProfileJvm annotation now displays a hint on the console when TLAB and outside TLAB events are disabled @guiRagh
🐛 Bug fixes
JVM
- UseGC annotation: fix Shenandoah configuration @FranckDemeyer
- Fix heap allocation measure for JUnit 4.13.2 @jeanbisutti
📦 Dependency updates
- Bump m-source-p to 3.2.1 that produces reproducible output @hboutemy
- Bump Testcontainers from 1.15.2 to 1.16.0 @jeanbisutti
🚧 Build & CI
- Add Reproducible Builds badge @hboutemy
- Add JDK 16 and JDK 17 builds @jeanbisutti
👍 Contributors
QuickPerf 1.0.1
🚀 Improvements
General
- Fix wording on the console: performance property => performance-related property @jeanbisutti
JUnit 5
- Support Test Templates. QuickPerf now works with @ParameterizedTest and @RepeatedTest @loicmathieu
🐛 Bug fixes
JUnit 4 & Spring
-
QuickPerfSpringRunner did not call the Spring TestExecutionListener instances before the test method execution. Fixed bug example @jeanbisutti
-
QuickPerfSpringRunner did not call the Spring TestExecutionListener instances after the test method execution. Fixed bug example
@jeanbisutti
SQL
- @DisableQueriesWithoutBindParameters should not detect the join as unbind parameter @archyoshi
🚧 Build & CI
-
Replace Travis CI with GitHub Actions @jeanbisutti
-
Bump Testcontainers fixing a macOS issue @jeanbisutti
-
Execute Testcontainers tests in the CI @jeanbisutti
👍 Contributors
QuickPerf 1.0.0
QuickPerf 1.0.0
QuickPerf
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties.
The release candidate distributions are used by several companies, among them Renault Digital and Fujitsu Portugal.
QuickPerf also allowed benching the Maven heap allocation.
👉 Lean more about QuickPerf
Project story
QuickPerf is an OSS project licensed under the Apache License, Version 2.0.
It was created by Jean Bisutti who presented preliminary versions to open space conferences (also called unconferences): Socrates France 2017 & 2018, JAlba 2018 & 2019, and JCrete 2018. Several people gave positive feedback, suggestions, and encouragement. Many thanks to all of them!
Several contributors joined the project. Many thanks to all of the QuickPerf contributors!
Who contributed?
release-1.0.0-RC7
🚀 New features and improvements
Core
- Add execution time annotations: @MeasureExecutionTime and @ExpectMaxExecutionTime @jeanbisutti
- Add
CoreAnnotationBuilder
to configure core annotations with a global scope @jeanbisutti
JVM
- @ProfileJvm now also displays some JVM profiling data
@jeanbisutti & @edwardrose946 (allocation rate) & @ubaidurrehman1 (young and old gc counts)
Example:
------------------------------------------------------------------------------
ALLOCATION (estimations) | GARBAGE COLLECTION | THROWABLE
Total : 3,68 GiB | Total pause : 1,264 s | Exception: 0
Inside TLAB : 3,67 GiB | Longest GC pause: 206,519 ms | Error : 36
Outside TLAB: 12,7 MiB | Young: 13 | Throwable: 36
Allocation rate: 108.1 MiB/s | Old : 3 |
------------------------------------------------------------------------------
COMPILATION | CODE CACHE
Number : 157 | The number of full code cache events: 0
Longest: 1,615 s |
------------------------------------------------------------------------------
- Add @UseGC @jeanbisutti
- Add @EnableGcLogging @jeanbisutti
- Add heap dumper @jeanbisutti
- Add Resident Set Size (RSS) annotations: @MeasureRSS and @ExpectMaxRSS @loicmathieu
- Add a format element to the @MeasureHeapAllocation annotation to format the message printed on the console. @JosePaumard
- Add the possibility to provide a Writer factory to @MeasureHeapAllocation . @JosePaumard
- Improve allocation display @jeanbisutti
- Improve the test issue report when the test is executed in a specific JVM @jeanbisutti
- Improve reporting in case of JVM issue @jeanbisutti
- Display in console information on where to find JMC @jeanbisutti
SQL
- Add @ExpectUpdatedColumn @fabfas
- Add @DisableQueriesWithoutBindParameters and @EnableQueriesWithoutBindParameters @archyoshi
Preview (needs more testing, feedbacks welcome)
JUnit 5
- Display an error message if JUnit 5 version is less than 5.6.0 @jeanbisutti
Build
- QuickPerf build is reproducible @Minh-Trieu
- Add JDK 14 builds @jeanbisutti
🐛 Bug fixes
JVM
- QuickPerf did not work when a not serializable throwable was thrown and the test was executed in a dedicated JVM
@loicmathieu (report) & @jeanbisutti (fix)
SQL
- Should not suspect N+1 select if less than two select statements are executed @jeanbisutti
⚠️ Breaking changes
SQL
- @DisableSameSelectTypesWithDifferentParams renamed into @DisableSameSelectTypesWithDifferentParamValues
- @EnableSameSelectTypesWithDifferentParams renamed into @EnableSameSelectTypesWithDifferentParamValues
👍 Contributors
@jeanbisutti
@edwardrose946
@ubaidurrehman1
@loicmathieu
@Minh-Trieu
@JosePaumard
@fabfas
@archyoshi