Есть ли способ получить предупреждение, когда необходимо создать экземпляр класса значений Scala?

В документации о Scala классах значений упоминается, что существует три случая, когда классу значений действительно нужно назначить экземпляр:

Сводка распределения

Класс значения фактически создается, когда:

  • класс значения рассматривается как другой тип.
  • класс значений присваивается массиву.
  • выполнение тестов типа времени выполнения, например сопоставление образцов.

Есть ли параметр в компиляторе или в языковых функциях, которые вызывают предупреждение при создании экземпляра класса значений?

Ответ 1

Нет, не в настоящее время.

Тем не менее, очень редко приходится беспокоиться об этой микро-оптимизации.

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

Компилятор JIT будет изменять то, что ваш код делает на уровне машины, в течение некоторого времени, если код достаточно горячий.

Накладные расходы на выделение класса значений часто даже не измеряются, если только это не единственное, что делает поток. См. https://groups.google.com/forum/#!topic/scala-user/XdQnbcs2SRM для некоторых тестов, где распределение класса значений не поддается измерению.