Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads
30.1. What IsJIT compilation?
Prev UpChapter 30. Just-in-Time Compilation (JIT)Home Next

30.1. What IsJIT compilation?#

Just-in-Time (JIT) compilation is the process of turning some form of interpreted program evaluation into a native program, and doing so at run time. For example, instead of using general-purpose code that can evaluate arbitrary SQL expressions to evaluate a particular SQL predicate likeWHERE a.col = 3, it is possible to generate a function that is specific to that expression and can be natively executed by the CPU, yielding a speedup.

PostgreSQL has builtin support to performJIT compilation usingLLVM whenPostgreSQL is built with--with-llvm.

Seesrc/backend/jit/README for further details.

30.1.2. Inlining#

PostgreSQL is very extensible and allows new data types, functions, operators and other database objects to be defined; seeChapter 36. In fact the built-in objects are implemented using nearly the same mechanisms. This extensibility implies some overhead, for example due to function calls (seeSection 36.3). To reduce that overhead,JIT compilation can inline the bodies of small functions into the expressions using them. That allows a significant percentage of the overhead to be optimized away.

LLVM has support for optimizing generated code. Some of the optimizations are cheap enough to be performed wheneverJIT is used, while others are only beneficial for longer-running queries. Seehttps://llvm.org/docs/Passes.html#transform-passes for more details about optimizations.


Prev Up Next
Chapter 30. Just-in-Time Compilation (JIT) Home 30.2. When toJIT?
pdfepub
Go to PostgreSQL 17
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp