An open API service indexing awesome lists of open source software.

https://github.com/delphington/benchmark


https://github.com/delphington/benchmark

benchmark java21 lombok reflection

Last synced: 8 months ago
JSON representation

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
```