{"id":26593736,"url":"https://github.com/sirazetdinova/reflectionbenchmark","last_synced_at":"2026-05-02T15:37:44.662Z","repository":{"id":282716960,"uuid":"949444775","full_name":"Sirazetdinova/ReflectionBenchmark","owner":"Sirazetdinova","description":"Измерение производительности с помощью JMH","archived":false,"fork":false,"pushed_at":"2025-03-16T13:38:17.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T14:31:49.311Z","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/Sirazetdinova.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-03-16T13:35:29.000Z","updated_at":"2025-03-16T13:38:58.000Z","dependencies_parsed_at":"2025-03-16T14:42:32.736Z","dependency_job_id":null,"html_url":"https://github.com/Sirazetdinova/ReflectionBenchmark","commit_stats":null,"previous_names":["sirazetdinova/reflectionbenchmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sirazetdinova%2FReflectionBenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sirazetdinova%2FReflectionBenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sirazetdinova%2FReflectionBenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sirazetdinova%2FReflectionBenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sirazetdinova","download_url":"https://codeload.github.com/Sirazetdinova/ReflectionBenchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245120163,"owners_count":20563866,"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-03-23T15:20:07.541Z","updated_at":"2026-05-02T15:37:44.626Z","avatar_url":"https://github.com/Sirazetdinova.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Т-Банк, Академия бэкенда. Проект 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%2Fsirazetdinova%2Freflectionbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsirazetdinova%2Freflectionbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsirazetdinova%2Freflectionbenchmark/lists"}