QuickPerf is a testing library for Java providing annotations to quickly evaluate some performance properties.
Usage
JVM annotations
@MeasureHeapAllocation @HeapSize(value = 1, unit = AllocationUnit.GIGA_BYTE) @Test public void execute_batch() { ... }
π All the JVM annotations π Heap allocation of Apache Maven
SQL annotations
@ExpectSelect(1) @Test public void should_find_all_players() { ... }
[PERF] You may think that <1> select statement was sent to the database
But in fact <10>...
π£ You may have even more select statements with production data.
Be careful with the cost of JDBC server roundtrips: https://blog.jooq.org/2017/12/18/the-cost-of-jdbc-server-roundtrips/
Auto-detection of Hibernate and Spring Data JPA:
Perhaps you are facing a N+1 select issue
* With Hibernate, you may fix it by using JOIN FETCH
or LEFT JOIN FETCH
or FetchType.LAZY
or ...
* With Spring Data JPA, you may fix it by adding
@EntityGraph(attributePaths = { "..." }) on repository method.
π All the SQL annotations π Spring Boot and Micronaut examples
View Devoxx Belgium talk
Documentation
The full documentation is available here.
Something to ask us?
π¬ Want to chat with us? Join us on gitter
You prefer to use a Github issue to ask a question? Create a question issue
Show your support
Please β this repository or if this project helped you!
Contributing
You are very welcome to contribute to QuickPerf! You can contribute in many ways. Some relatively easy things can be done. Other issues are more challenging. Each contribution is appreciated. Read our contributing guide to learn more.
Contributors
Many thanks to all our contributors!
emoji key