Я работаю над проектом, в котором мы создаем язык, который компилируется в Java. Фреймворк, который мы используем (xtext), широко использует бокс в сгенерированном коде.
В частности, если у вас есть заявление вроде:
int i = 1;
int j = 2;
int k = i + j;
Тогда скомпилированный код выглядит так:
IntegerExtensions.operator_plus(((Integer)i), ((Integer)j))
Теперь в проекте, над которым я работаю, есть определенные ситуации, в которых отдельные базовые двоичные операции будут встречаться крайне часто (особенно приращения и сравнения).
У меня вопрос: это будет проблемой с точки зрения производительности, или JIT (или аналогичные интеллектуальные функции JVM) просто поймут, что происходит, и все исправят?
ПОЖАЛУЙСТА, ПРОЧТИТЕ ПЕРЕД ПОСТАВКОЙ: я не заинтересован в том, чтобы получать ответы, в которых говорится: «Вам все равно, сделайте это читабельным». Этот код сгенерирован, и мне просто наплевать на читаемость сгенерированного кода. Что меня беспокоит, так это то, что мы не получим значительного снижения производительности от этого.
Спасибо