Является ли Java в стиле Groovy так же быстро, как Java?
-
22-10-2019 - |
Вопрос
Если я правильно понимаю Groovy динамически напечатана, но, поскольку это почти суперсет Java, можно предоставить информацию о статическом типе. Это может быть полезно, если написать что -то, где только несколько частей имеют критическую производительность, избегая трения с использованием нескольких языков. Типовые аннотации могут быть предоставлены только для критических частей производительности.
Каково штраф за производительность для использования Groovy вместо Java в функциях/классах, где используется подмножество Java, и аннотация статического типа предусмотрены?
Решение
Объявление типов в Groovy не волшебным образом ускоряет ситуацию. Это все еще отличный код, и он должен пройти через швабру на случай, если что -то динамически изменилось. Вы не получаете статическое связывание только потому, что вы дали информацию типа.
Для чувствительных к производительности вещей, для которых простой код просто недостаточно быстр, вам нужно написать настоящий код Java.
Этот вопрос очень похож на Предыдущая где я дал ответ Копание в сгенерированном байтовом коде, показывая, как что -то набирает что -то, не ускоряет ситуацию.
Другие советы
Вы также можете использовать Groovy ++. Оставьте Groovypp.jar в путь к классу и аннотируйте пакет, класс или метод с помощью @typed. Аннотированный код отстранен от швабры, поэтому практически так же быстр, как код Java.
И даже если вы не объявите тип, @typed Code выведет тип, если это возможно, во время компиляции.