Я перенес Java-код теста Havlak от Роберта Хундта (см. ссылка) на Groovy. Теперь я запускаю тест с Groovy 2.1.1 с динамическим вызовом и без него, но продолжительность вычислений почти одинакова. Что я сделал, чтобы включить динамический вызов? Я скопировал groovy--indy.jars из groovy-2.1.1\indy в groovy-2.1.1\lib. Затем я удалил в groovy-2.1.1\lib все groovy.jars без "indy" в их имени. После этого в IntelliJ IDEA я включил и отключил флаг «Файл»> «Настройки»> «Компилятор»> «Компилятор Groovy»> «Вызвать динамическую поддержку».
Я говорю это только для того, чтобы люди увидели, правильно ли я включил поддержку инди. Но это не мой вопрос. Мой вопрос в том, в каких ситуациях мы можем ожидать ускорения времени вычислений из-за динамического вызова. Я читал статьи об этом, но трудно перевести то, что там объясняется о том, что делает динамический вызов, в какое-то утверждение, что «этот вид кода будет выполняться быстрее с поддержкой indy». Бенчмарк Havlak выполняет большое количество циклов, когда значения изменяются посредством вызова сеттеров.
Я был бы рад, если бы кто-нибудь, разбирающийся в этом вопросе, скинул бы здесь некоторые пояснения :-).
Спасибо, Оливер.