https://github.com/delphington/benchmark
https://github.com/delphington/benchmark
benchmark java21 lombok reflection
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/delphington/benchmark
- Owner: Delphington
- Created: 2025-01-26T17:41:01.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-02T08:11:37.000Z (over 1 year ago)
- Last Synced: 2025-03-23T23:30:38.952Z (about 1 year ago)
- Topics: benchmark, java21, lombok, reflection
- Language: Java
- Homepage:
- Size: 146 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Benchmark test
Проект предназначен для реализации и сравнения производительности четырех различных способов обращения к методу Student#name() (или любому другому классу/интерфейсу) в Java.
- Прямой доступ
- java.lang.reflect.Method
- java.lang.invoke.MethodHandles
- java.lang.invoke.LambdaMetafactory
| Benchmark | Mode | Score | Units |
|------------------------|------|---------|---------|
| Main.directAccess | avgt | 0.902 | ns/op |
| Main.lambdaMetafactory | avgt | 6.747 | ns/op |
| Main.methodHandles | avgt | 5.405 | ns/op |
| Main.reflection | avgt | 9.717 | ns/op |
## Структура проекта
Это типовой Java-проект, который собирается с помощью инструмента автоматической
сборки проектов [Apache Maven](https://maven.apache.org/).
Проект состоит из следующих директорий и файлов:
- [pom.xml](./pom.xml) – дескриптор сборки, используемый maven, или Project
Object Model. В нем описаны зависимости проекта и шаги по его сборке
- [src/](./src) – директория, которая содержит исходный код приложения и его
тесты:
- [src/main/](./src/main) – здесь находится код вашего приложения
- [src/test/](./src/test) – здесь находятся тесты вашего приложения
- [mvnw](./mvnw) и [mvnw.cmd](./mvnw.cmd) – скрипты maven wrapper для Unix и
Windows, которые позволяют запускать команды maven без локальной установки
- [checkstyle.xml](checkstyle.xml),
[checkstyle-suppression.xml](checkstyle-suppression.xml), [pmd.xml](pmd.xml) и
[spotbugs-excludes.xml](spotbugs-excludes.xml) – в проекте используются
[линтеры](https://en.wikipedia.org/wiki/Lint_%28software%29) для контроля
качества кода. Указанные файлы содержат правила для используемых линтеров
- [.mvn/](./.mvn) – служебная директория maven, содержащая конфигурационные
параметры сборщика
- [lombok.config](lombok.config) – конфигурационный файл
[Lombok](https://projectlombok.org/), библиотеки помогающей избежать рутинного
написания шаблонного кода
- [.editorconfig](.editorconfig) – файл с описанием настроек форматирования кода
- [.github/workflows/build.yml](.github/workflows/build.yml) – файл с описанием
шагов сборки проекта в среде Github
- [.gitattributes](.gitattributes), [.gitignore](.gitignore) – служебные файлы
для git, с описанием того, как обрабатывать различные файлы, и какие из них
игнорировать
Запуск только компиляции основных классов:
```shell
mvn compile
```