Спорт
Когда эти методы взаимодействуют, JVM вынуждена преобразовывать между двумя представлениями
В этом посте обсуждаются предварительные функции в JDK 28, где JEP 401, важная веха Valhalla, был интегрирован как предварительная функция в JDK 28.
В этом посте обсуждаются предварительные функции в JDK 28, где JEP 401, важная веха Valhalla, был интегрирован как предварительная функция. Однако автор видел, как люди в интернете применяют подход «Value для всех классов!». Он опасается, что существует убеждение, что обычные классы обеспечивают нижнюю границу производительности, и что классы значений не опустят её ниже.
К сожалению, это не так. Хорошо намеренная программа может поставить JVM в ситуацию, где плоское представление быстрее для одних методов, а ссылочное — для других. Когда эти методы взаимодействуют, JVM вынуждена преобразовывать между двумя представлениями. отказ от идентичности, что даёт JVM свободу выбирать подходящее представление.
Будут рассмотрены три примера: большое конечное значение, хранящееся плоско, прямое преобразование значения, скомпилированное без выделения, и общий виртуальный вызов, требующий материализации.
Источник: Hacker News
Самое читаемое в категории
Загрузка статьи…