Я написал тест JMH о стоимости new
инструкции и проверил файлы классов, которые она генерирует. Кроме обычных классов, в папке generated
есть тонны производных классов:
![class files](https://i.stack.imgur.com/X4Do4.png)
Это действительно шокировало меня, так как всего несколько аннотаций приведут так много классов, связанных вместе через наследование. Мне любопытно, что происходит в этом классе, поэтому я использую инструмент декомпиляции (кстати, я узнал об этом инструменте из одного выступления на KotlinConf 2019) под названием procyon
, чтобы декомпилировать этот сгенерированный класс, большинство из них связаны с управлением, например, временем измерения (они явно указаны, не могут быть встроены) и собирать метрики. Но в этом классе есть тонны странных логических значений:
![a class file consisted of only booleans](https://i.stack.imgur.com/RoT0k.png)
также есть много логических значений в других файлах сгенерированных классов. Я гуглил это, и кажется, что они в некоторой степени получены из кода источника JMH . Итак, я хочу спросить, для чего используются эти логические значения? Я предполагаю, что они тесно связаны с рабочим принципом, лежащим в основе JMH ... кажется, нет комментариев о логических значениях в исходном коде JMH.
Кроме того, любые предложения по улучшению теста JMH я упоминал с самого начала. ..? Я знаю, что тестирование таких вещей может быть очень сложным и уязвимым, поэтому я не знаю, являются ли они точными или достаточно надежными.
Большое спасибо.