Отличная статья с бенчмарками. Для справки: боксинг — это замена примитивного типа (int) на ссылочный (Integer) или, в более общем случае, просто увеличение уровня косвенности (когда чтобы добраться до “настоящего” значения нужно больше ссылок).

TLDR:

  • Стоимость боксинга зависит от JVM и оптимизаций.
  • Opaque-типы почти бесплатны
  • ФП-стиль “дороже” императивного при использовании OpenJDK.
  • Боксинг довольно хорошо оптимизируется в GraalVM, с ее использованием почти нет разницы, в каком стиле писать.