Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/quick-perf/quickperf
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
https://github.com/quick-perf/quickperf
allocation hibernate java-flight-recorder java-flight-recordings jdbc junit jvm microservice microservices n-plus-1 nplus1 orm performance performance-analysis performance-testing profiling spring spring-boot spring-data-jpa sql
Last synced: 5 days ago
JSON representation
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
- Host: GitHub
- URL: https://github.com/quick-perf/quickperf
- Owner: quick-perf
- License: apache-2.0
- Created: 2019-06-10T19:22:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-21T00:12:19.000Z (12 months ago)
- Last Synced: 2024-10-17T12:29:57.176Z (4 months ago)
- Topics: allocation, hibernate, java-flight-recorder, java-flight-recordings, jdbc, junit, jvm, microservice, microservices, n-plus-1, nplus1, orm, performance, performance-analysis, performance-testing, profiling, spring, spring-boot, spring-data-jpa, sql
- Language: Java
- Homepage: https://github.com/quick-perf/doc/wiki/QuickPerf
- Size: 1.59 MB
- Stars: 479
- Watchers: 9
- Forks: 67
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
---
---
## [📙 Documentation](https://github.com/quick-perf/doc/wiki/QuickPerf)
### Annotations:point_right: [Core](https://github.com/quick-perf/doc/wiki/core-annotations)
:point_right: [JVM](https://github.com/quick-perf/doc/wiki/jvm-annotations)
:point_right: [SQL](https://github.com/quick-perf/doc/wiki/sql-annotations)
[more...](https://github.com/quick-perf/doc/wiki/QuickPerf#annotation-scopes)
### Frameworks and Test Frameworks
:point_right: [Spring](https://github.com/quick-perf/doc/wiki/Spring)
[more...](https://github.com/quick-perf/doc/wiki/QuickPerf#execute-quickperf)
:point_right: [JUnit 4](https://github.com/quick-perf/doc/wiki/JUnit-4)
:point_right: [JUnit 5](https://github.com/quick-perf/doc/wiki/JUnit-5)
:point_right: [TestNG](https://github.com/quick-perf/doc/wiki/TestNG)
[more...](https://github.com/quick-perf/doc/wiki/QuickPerf#execute-quickperf)
### Frequently Asked Questions
[more...](https://github.com/quick-perf/doc/wiki/Frequently-Asked-Questions)
## Usage
### JVM annotations```java
@MeasureHeapAllocation
@HeapSize(value = 1, unit = AllocationUnit.GIGA_BYTE)
@Test
public void execute_batch() {
...
}
```📙 [All the JVM annotations](https://github.com/quick-perf/doc/wiki/JVM-annotations) :mag_right: Examples with [JUnit4](https://github.com/quick-perf/quickperf-examples/blob/master/jvm-junit4/src/test/java/org/quickperf/jvm/JvmAnnotationsJunit4Test.java), [Junit5](https://github.com/quick-perf/quickperf-examples/blob/master/jvm-junit5/src/test/java/org/quickperf/jvm/JvmAnnotationsJunit5Test.java), [TestNG](https://github.com/quick-perf/quickperf-examples/blob/master/jvm-testng/src/test/java/org/quickperf/jvm/JvmAnnotationsTestNGTest.java) :mag_right: [Heap allocation of Apache Maven](https://github.com/quick-perf/maven-test-bench)
### **SQL annotations**
```java
@ExpectSelect(1)
@Test
public void should_find_all_players() {
...
}
``````
[PERF] You may think that <1> select statement was sent to the database
But there are in fact <10>...💣 You may have even more select statements with production data.
Be careful with the cost of JDBC 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](https://github.com/quick-perf/doc/wiki/SQL-annotations) :mag_right: [Spring Boot & JUnit 4](https://github.com/quick-perf/quickperf-examples/tree/master/springboot-junit4) :mag_right: [Spring Boot & JUnit 5](https://github.com/quick-perf/quickperf-examples/tree/master/springboot-junit5)
## Talks and videos
### [English](https://www.youtube.com/playlist?list=PLyRtZQwOxA6e7hOpc_n0WJ0exOYyVaS_b)
### [French](https://www.youtube.com/playlist?list=PLyRtZQwOxA6c8cpz7k_ZuIMAY4hvDwBzI)
## Something to ask us?
:e-mail: [email protected]
💬 Want to chat with us? Join us on [gitter](https://gitter.im/quickperf)
:octocat: Do you prefer to use a Github issue to ask a question? [Create a question issue](https://github.com/quick-perf/quickperf/issues/new?assignees=&labels=question&template=question.md&title=)
## Show your support
Please ⭐ this repository or [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Tweet%20to%20support%20QuickPerf)](https://twitter.com/intent/tweet?text=You%20can%20use%20%40QuickPerf%20to%20quickly%20evaluate%20some%20Java%20performance%20properties%0Ahttps%3A%2F%2Fgithub.com%2Fquick-perf%2Fquickperf%0A) 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
💻
⚠
📖
🎨
💡
👀
📢
Guillaume Raghoumandan
💻
⚠
Patrice Cavezzan
💻
🚇
📖
Alexandre Blanchard
🐛
💻
Eric McDowell
💻
Jan Krüger
💻
Loïc Mathieu
💻
💡
📖
Daniel Bentley
🚇
Gaurav Deshpande
⚠
rdm100
📖
Artus de Benque
🐛
💻
Minh-Trieu Ha
💻
Bakary Djiba
💻
C Faisal
💻
Thami Inaflas
💻
José Paumard
💻
Edward Rose
💻
Ubaid ur Rehman
💻
Giuseppe B.
💻
Fabrice
💻
📖
Navneet Kumar
💻
Charles Sabourdin
📖
Mohamed Karaga
🐛
💻
Hervé Boutemy
📦
Franck Demeyer
🐛
💻
Oliver Hughes
💻
Hedley Proctor
💻
rsassi
🐛
💻
## Sponsors
Many thanks Zenika for sponsoring this project!
[![with love by zenika](https://img.shields.io/badge/With%20%E2%9D%A4%EF%B8%8F%20by-Zenika-b51432.svg)](https://oss.zenika.com)## License
[Apache License 2.0](/LICENSE.txt)