メインコンテンツまでスキップ
バージョン: Latest-3.4

式の JIT コンパイル

このトピックでは、StarRocks における式の JIT コンパイルの有効化と設定方法について説明します。

概要

ジャストインタイムコンパイル (JIT) は、実行時に機械コードを生成し実行する手法です。インタープリタと比較して、JIT コンパイラは最も頻繁に使用されるコード部分の実行効率を大幅に向上させることができます。StarRocks は、特定の複雑な式に対して JIT コンパイルをサポートしており、パフォーマンスを大幅に向上させることができます。

使用法

バージョン v3.3.0 以降、StarRocks はメモリ制限(BE 設定項目 mem_limit によって設定)を 16 GB 以上に設定した BE ノードに対してデフォルトで JIT コンパイルを有効にしています。JIT コンパイルは一定量のメモリリソースを消費するため、16 GB 未満のメモリを持つ BE ノードではデフォルトで無効になっています。

以下のパラメータを使用して、式の JIT コンパイルを有効化および設定できます。

jit_lru_cache_size (BE 設定)

  • デフォルト: 0
  • 型: Int
  • 単位: GB
  • 可変性: はい
  • 説明: JIT コンパイルのための LRU キャッシュサイズ。0 より大きい値に設定すると、キャッシュの実際のサイズを表します。0 以下に設定すると、システムは jit_lru_cache_size = min(mem_limit*0.01, 1GB) の式を使用してキャッシュを適応的に設定します(ノードの mem_limit は 16 GB 以上である必要があります)。
  • 導入バージョン: -

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