swoole開jit對性能有沒有提升?

字號+ 編輯: 种花家 修訂: 种花家 來源: 2025-08-14 我要說兩句(0)

網上流傳著swoole既然是常駐內存的, 根本沒必要開jit或者opcache, 甚至讓編譯php的時候把--disable-opcache給打開。本文詳述如何配置jit, 並且解釋相關的配置值。

JIT的基本概念

JIT(Just-In-Time Compilation,即時編譯)runtime編譯,php的opcache.jit在程序運行時將字節碼轉換為機器碼,以提高代碼的執行效率。

jit在軟體領域裡面不是一個新名詞,例如lua腳本,jit對其性能的提升得到了充分驗證。

經過php5.6時代開始長年的性能爭論, 和zend核心開發者的大力介入, php8.0版引入了jit,同樣是為了提升計算密集型任務中的性能, 設法讓php以簡單易上手的形象, 能夠躋身cpu(中等)密集型操作、應付相對複雜的計算。

zend從8.0到現在一直在優化jit, 據說這個後起之秀已經逐漸接近了Java8和Node.js v8。

問題: swoole開jit有沒有用?

江湖訛傳swoole是常駐內存的, 沒必要開jit。實際非也、非也。

swoole+jit配置詳解

php.ini改以下的內容開jit:

zend_extension="opcache.so"
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=128M

注意這一項, 在php 8.5提高這個配置的值, 可成倍提升密集運算性能。

opcache.jit=1225

設置 JIT 優化等級,1225就很好,傳送門:https://www.php.net/manual/zh/opcache.configuration.php#ini.opcache.jit-buffer-size

php.ini當中opcache.jit等號後面的配置解釋

opcache.jit的值是一個字符串,或4字節數字,每個字節表示一項設置, 如果你寫的是字符串值:

  • disable:完全禁用,無法在運行時啓用

  • off:禁用,但可以在運行時啓用

  • tracing/on:使用追蹤 JIT。默認啓用並推薦給大部分用戶

  • function:使用函數 JIT

  • "tracing" 模式對應 CRTO = 1254,"function" 模式對應 CRTO = 1205。

如果你寫的是數字:

針對高級用法,此選項接受 4 位整數 CRTO,其中的位分別是:

C(特定 CPU 優化 flag)

0:禁用特定 CPU 優化

1:如果 CPU 支持則啓用 AVX

R(寄存器分配)

0:不執行寄存器分配

1:執行局部域寄存器分配

2:執行全局寄存器分配

T(觸發)

0: 在腳本加載時編譯所有函數

1: 在第一次執行時編譯函數

2:第一次請求時分析函數,然後編譯最熱門函數

3:動態分析和編譯熱門函數

4:目前未使用

5:使用追蹤 JIT。動態分析和為熱門代碼段編譯追蹤

O(優化級別)

0:關閉 JIT 優化

1:最小 JIT(調用標準 VM 處理程序)

2:內聯 VM 處理程序

3:使用類型推斷

4:使用調用圖

5:優化整個腳本

在 Swoole 協程下,第三項 T(觸發) 的等級必須為大於或等於2,否則swoole Runtime Hook不會生效。

嚕囌了一大堆, 你不如聽我的, 直接寫1225

opcache.jit=1225

jit測試結果

測試結果傳送門:https://php.watch/articles/jit-in-depth

“此測試是基於 PHP 8.0,當前的 8.3 版本相比又有了較大的性能提升”

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    1

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公眾號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是甚麼

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評