PostgreSQL JIT (Just-In-Time)

PostgreSQL JIT (Just-In-Time) derleme için doğrudan bir destek sunmamaktadır. JIT derleme, bir programın çalışma zamanında, yürütme sırasında, kodun derlenmesi anlamına gelir. Bu yaklaşım, belirli koşullar altında performansı artırabilir çünkü çalışma zamanında derleme, optimize edilmiş makine kodunu oluşturarak yürütme hızını artırabilir.

PostgreSQL’de JIT derlemesi için özel bir parametre seti bulunmamaktadır, çünkü PostgreSQL’in temel mimarisi sorguları tipik olarak SQL sorgularını önceden derleyerek yürütme zamanında yürütme planı oluşturmak üzerine kuruludur. Ancak, PostgreSQL 11 ve sonrasında, JIT derleme özelliklerinin kullanıldığı JIT desteği eklenmiştir.

PostgreSQL 11’de tanıtılan JIT derleme, özellikle SELECT sorgularını yürütmek için LLVM tabanlı bir JIT derleyici kullanır. Bu, belirli sorguların daha hızlı çalışmasını sağlayabilir, ancak her sorgu için JIT derleme kullanılmaz. JIT derlemesi, JIT_COST_LIMIT ve JIT_ABOVE_COST_LIMIT gibi parametrelerle yapılandırılabilir.

jit_above_cost:


JIT derlemesinin kullanılabilir olduğu ve sorgunun bu maliyetten daha pahalı olduğu durumlarda JIT derlemesinin gerçekleştirilip gerçekleştirilmeyeceğini belirler. Varsayılan değer 100000’dır. Bu değer, JIT derlemesinin ne zaman devreye gireceğini belirleyen bir eşiktir. -1 olarak ayarlanırsa, JIT derlemesi devre dışı bırakılır.

jit_inline_above_cost :


Sorgu maliyeti bu değerden daha yüksek olduğunda küçük fonksiyonların satır içine alınıp alınmayacağını belirler. Varsayılan değer 500000’dır. Bu, JIT derlemesi sırasında fonksiyonların satır içine alınmasının ne zaman etkinleştirileceğini belirleyen bir eşiktir. -1 olarak ayarlanırsa, satır içine alma işlemi devre dışı bırakılır.

jit_optimize_above_cost :

Sorgu maliyeti bu değerden daha yüksek olduğunda daha pahalı JIT optimizasyonlarının kullanılıp kullanılmayacağını belirler. Varsayılan değer 500000’dır. Bu, JIT derlemesi sırasında daha pahalı optimizasyonların ne zaman etkinleştirileceğini belirleyen bir eşiktir. -1 olarak ayarlanırsa, pahalı JIT optimizasyonları devre dışı bırakılır.

Postgresql.conf ile ilgili daha fazla detay için postgresql.conf yazıma göz atabilirsiniz.

Loading