{"id":24716592,"url":"https://github.com/stacenko-developer/reflection-benchmark","last_synced_at":"2026-04-30T03:40:52.589Z","repository":{"id":273526402,"uuid":"920004713","full_name":"stacenko-developer/reflection-benchmark","owner":"stacenko-developer","description":"Измерение производительности с помощью JMH","archived":false,"fork":false,"pushed_at":"2025-01-21T12:04:52.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T09:21:21.480Z","etag":null,"topics":["java","java-reflection","maven","reflection"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stacenko-developer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-21T11:55:48.000Z","updated_at":"2025-01-21T13:29:45.000Z","dependencies_parsed_at":"2025-01-21T13:30:02.057Z","dependency_job_id":null,"html_url":"https://github.com/stacenko-developer/reflection-benchmark","commit_stats":null,"previous_names":["stacenko-developer/reflection-benchmark"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stacenko-developer/reflection-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacenko-developer%2Freflection-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacenko-developer%2Freflection-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacenko-developer%2Freflection-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacenko-developer%2Freflection-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stacenko-developer","download_url":"https://codeload.github.com/stacenko-developer/reflection-benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacenko-developer%2Freflection-benchmark/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260224139,"owners_count":22977352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java-reflection","maven","reflection"],"created_at":"2025-01-27T09:13:20.615Z","updated_at":"2026-04-30T03:40:49.098Z","avatar_url":"https://github.com/stacenko-developer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![tbank-logo.svg](img/tbank-logo.svg)\n# Академия бэкенда от Т-Банка 2024, 1 семестр, Проект 5: Измерение производительности\n\n## Описание\n\nВ проекте требуется написать набор бенчмарк-тестов, которые покажут скорость работы разных версий одного и того же метода.\n\nВремя работы коротких методов обычно изменяется в наносекундах и сильно зависит от текущего состояния операционной системы, поэтому такие замеры делаются при помощи специальных библиотек.\n\n\n## Функциональные требования\n- Написать бенчмарк-тест для каждого варианта метода (см инструкцию по реализации).\n- Использовать JMH\n\n## Нефункциональные требования\n- Опубликуйте финальную таблицу результатов запуска тестов.\n\n## Задание\nТребуется реализовать и сравнить производительность 4 способов обращения к методу Student#name() (или любого другого класса/интерфейса):\n1. Прямой доступ\n2. java.lang.reflect.Method\n3. java.lang.invoke.MethodHandles\n4. java.lang.invoke.LambdaMetafactory\n\n## Начало работы\n\nДля того чтобы собрать проект, и проверить, что все работает корректно, можно\nзапустить из модального окна IDEA\n[Run Anything](https://www.jetbrains.com/help/idea/running-anything.html)\nкоманду:\n\n```shell\nmvn clean verify\n```\n\nАльтернативно можно в терминале из корня проекта выполнить следующие команды.\n\nДля Unix (Linux, macOS, Cygwin, WSL):\n\n```shell\n./mvnw clean verify\n```\n\nДля Windows:\n\n```shell\nmvnw.cmd clean verify\n```\n\nДля окончания сборки потребуется подождать какое-то время, пока maven скачает\nвсе необходимые зависимости, скомпилирует проект и прогонит базовый набор\nтестов.\n\nЕсли вы в процессе сборки получили ошибку:\n\n```shell\nRule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion failed with message:\nJDK version must be at least 22\n```\n\nЗначит, версия вашего JDK ниже 22.\n\nЕсли же получили ошибку:\n\n```shell\nRule 1: org.apache.maven.enforcer.rules.version.RequireMavenVersion failed with message:\nMaven version should, at least, be 3.8.8\n```\n\nЗначит, у вас используется версия maven ниже 3.8.8. Такого не должно произойти,\nесли вы запускаете сборку из IDEA или через `mvnw`-скрипты.\n\nДалее будут перечислены другие полезные команды maven.\n\nЗапуск только компиляции основных классов:\n\n```shell\nmvn compile\n```\n\nЗапуск тестов:\n\n```shell\nmvn test\n```\n\nЗапуск линтеров:\n\n```shell\nmvn checkstyle:check modernizer:modernizer spotbugs:check pmd:check pmd:cpd-check\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstacenko-developer%2Freflection-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstacenko-developer%2Freflection-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstacenko-developer%2Freflection-benchmark/lists"}