JIT-компиляция для выражений
Эта тема описывает, как включить и настроить JIT-компиляцию для выражений в Selena.
Обзор
Just-in-time компиляция (JIT) — это генерация машинного кода и его выполнение во время работы. По сравнению с интерпретатором, JIT-компилятор может значительно улучшить эффективность выполнения наиболее используемых частей кода. Selena поддерживает JIT-компиляцию для определенных сложных выражений, обеспечивая многократное улучшение производительности.
Использование
Начиная с версии 1.5.0, Selena включает JIT-компиляцию по умолчанию для BE-узлов с ограничением памяти (настраиваемым параметром конфигурации BE mem_limit) больше или равным 16 ГБ. Поскольку JIT-компиляция потребляет определенное количество ресурсов памяти, она отключена по умолчанию для BE-узлов с менее чем 16 ГБ памяти.
Вы можете включить и настроить JIT-компиляцию для выражений, используя следующие параметры.
jit_lru_cache_size (конфигурация BE)
- По умолчанию: 0
- Тип: Int
- Единица: Байты
- Изменяемый: Да
- Описание: Размер LRU-кэша для JIT-компиляции. Представляет фактический размер кэша, если установлен больше 0. Если установлен меньше или равен 0, система адаптивно установит кэш, используя формулу
jit_lru_cache_size = min(mem_limit*0.01, 1GB)(при этомmem_limitузла должен быть больше или равен 16 ГБ). - Введен в: -
jit_level (системная переменная)
- Описание: Уровень, на котором включена JIT-компиляция для выражений. Допустимые значения:
1: Система адаптивно включает JIT-компиляцию для компилируемых выражений.-1: JIT-компиляция включена для всех компилируемых, неконстантных выражений.0: JIT-компиляция отключена. Вы можете отключить ее вручную, если для этой функции возвращается какая-либо ошибка.
- По умолчанию: 1
- Тип данных: Int
- Введен в: -
Поддержка функций
Поддерживаемые выражения
+,-,*,/,%,&,|,^,>>,<<- Преобразование типов данных с CAST
- CASE WHEN
=,!=,>,>=,<,<=,<=>AND,OR,NOT
Поддерживаемые операторы
- OLAP Scan Operator для фильтра
- Projection Operator
- Aggregate Operator для выражения
- HAVING
- Sort Operator для выражения
Поддерживаемые типы данных
- BOOLEAN
- TINYINT
- SMALLINT
- INT
- BIGINT
- LARGEINT
- FLOAT
- DOUBLE