Подтвердить что ты не робот

Какова производительность Groovy 2.0 со статической компиляцией

Я вижу, что недавняя версия Groovy 2.0 включает в себя необязательную статическую компиляцию наряду с несколькими другими добавленными преимуществами, такими как необязательная проверка статического типа. После небольшого поиска я не смог найти каких-либо обширных тестов, сравнивающих производительность Groovy (со статической компиляцией) с Java и, возможно, Scala. Кто-нибудь знает о таких сравнениях производительности? Можем ли мы предположить, что это то же самое, что Groovy ++ было до его смерти? Если производительность сопоставима, будет ли Groovy жизнеспособной альтернативой для большого критически важного приложения?

4b9b3361

Ответ 1

Здесь есть несколько тестов (хотя трудно понять, что происходит)

Однако, взяв исходный код Groovy 1.8.2 Fib в нижней части страницы и запустив его в Groovy 2.0, вы получите:

Groovy(static ternary): 1623ms
Groovy(static if): 1583ms
Groovy(instance ternary): 1744ms
Groovy(instance if): 1694ms

Ввод @groovy.transform.CompileStatic в начало script дает вам:

Groovy(static ternary): 819ms
Groovy(static if): 799ms
Groovy(instance ternary): 816ms
Groovy(instance if): 811ms

Очевидно, что это не полный тест (он тестирует только одно), он не включает разминку или что-то еще, а Groovy 2.0 вышел только неделю, однако он намекает на хорошее улучшение скорости в эта ситуация...

Ответ 2

Я считаю, что java запускает те тесты около 550 мс

Я сравнивал производительность с Java. Для "статических тернарных" и "статических, если" производительность Groovy с @CompileStatic несколько отличается от производительности Java. Для "instance trernary" и "instance if" это почти коэффициент 2. См. Мой пост в блоге.