Skip to content

Files

Latest commit

9fd7d2a · Jul 31, 2020

History

History
318 lines (294 loc) · 14.8 KB

README.md

File metadata and controls

318 lines (294 loc) · 14.8 KB
QuickPerf

QuickPerf is a testing library for Java to quickly evaluate some performance properties.


Maven Central    License    Build Status    Gitter    Twitter Follow    YouTube


Usage

JVM annotations

    @MeasureHeapAllocation
    @HeapSize(value = 1, unit = AllocationUnit.GIGA_BYTE)
    @Test
    public void execute_batch() {
        ...
    }

📙 All the JVM annotations    🔎 Examples with JUnit4, Junit5, TestNG    🔎 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 an 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: https://docs.spring.io/spring-data/jpa/docs/current/reference/ht

📙 All the SQL annotations    🔎 Spring Boot & JUnit 4    🔎 Spring Boot & JUnit 5

View Devoxx Belgium talk

Devoxx Belgium talk

Documentation

The full documentation is available here.

Something to ask us?

💬 Want to chat with us? Join us on gitter

:octocat: You prefer to use a Github issue to ask a question? Create a question issue

Show your support

Please ⭐ this repository or Tweet 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!

Jean Bisutti
Jean Bisutti

💻 📖 🎨
💡 👀 📢
guiRagh
Guillaume Raghoumandan

💻
Patrice CAVEZZAN
Patrice Cavezzan

💻 🚇 📖
Alexandre Blanchard
Alexandre Blanchard

🐛 💻
Eric McDowell
Eric McDowell

💻
Jan Krüger
Jan Krüger

💻
Loïc Mathieu
Loïc Mathieu

💻
Daniel Bentley
Daniel Bentley

🚇
Gaurav Deshpande
Gaurav Deshpande

rdm100
rdm100

📖
Artus de Benque
Artus de Benque

🐛 💻
Minh-Trieu Ha
Minh-Trieu Ha

💻
Bakary Djiba
Bakary Djiba

💻
C Faisal
C Faisal

💻
Thami Inaflas
Thami Inaflas

💻
José Paumard
José Paumard

💻
Edward Rose
Edward Rose

💻
Ubaid ur Rehman
Ubaid ur Rehman

💻
Giuseppe B.
Giuseppe B.

💻
Fabrice
Fabrice

💻
emoji key

Sponsors

Many thanks Zenika for sponsoring this project!

with love by zenika

License

Apache License 2.0