Ресурсы для написания моей собственной утилиты микробенчмаркинга - PullRequest
0 голосов
/ 19 сентября 2019

Я планирую создать свои собственные утилиты микробенчмаркинга для Java и C ++, надеюсь, используя один и тот же общий дизайн для получения наиболее похожих результатов.

Это будет для "проверки" различий в скорости междудва языка при запуске различных типов процессов (т.е. алгоритмы сортировки, чтение файлов и т. д.).Однако я не совсем уверен, с чего начать такой проект.Я изо всех сил пытаюсь найти какие-либо учебные пособия или учебные материалы для создания тестовых утилит для кода Java или C ++.Все, что я нашел, - это готовые тестовые утилиты, такие как Java Microbenchmark Harness (JMH) и Maven.Мне просто нужно указать правильное направление ресурсов для создания утилит для тестирования.

Из проведенного мною исследования (хотя и только сегодня) люди утверждают, что тестирование кода намного сложнее, чем кажется из-за компилятораоптимизация.По-видимому, очень сложно держаться подальше от вашей программы в тестах.Например, если компилятор понимает, что выполняемый вами цикл на самом деле ничего не делает, он научится полностью его удалять.Если вы попытаетесь сделать что-то внутри цикла, например, увеличить переменную, компилятор может довольно легко ее оптимизировать.Согласно этой статье ,

"... если этот процесс применяется многократно, весь цикл может быть свернут в один синхронизированный блок с одним" counter = 10000000 "операции. И да, реальные JVM могут выполнять эти оптимизации.) "

У кого-нибудь есть какие-либо ресурсы, чтобы начать меня?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...