производительность в библиотеках протоколирования scala вызов -по значению -по сравнению с вызовом -по имени -

В последнее время я просматривал различные библиотеки ведения журнала scala, и подавляющее большинство из них реализуют свои функции ведения журнала как

def debug(s: => String)

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

Unlike a lot of Scala logging libraries, Logula doesn't use pass-by-name semantics (e.g., f: => A) for its logging statements, which means two things:

  • The Scala compiler doesn't have to create one-off closure objects for each logging statement. This should reduce the amount of garbage collection pressure.

Что на самом деле имеет для меня смысл. Итак, мой вопрос: есть ли какие-либо тесты/данные производительности в реальном мире, сравнивающие два подхода? В идеале что-то из живого проекта, а не надуманные бенчмарки?

8
задан Rex Kerr 31 July 2012 в 16:46
поделиться