簡單試玩 PHP 8.0 RC3 及 JIT 效能測試

Bycodeant

簡單試玩 PHP 8.0 RC3 及 JIT 效能測試

Step 1. 下載 PHP 8.0 RC3

wget https://downloads.php.net/~carusogabriel/php-8.0.0RC3.tar.bz2
tar xf php-8.0.0RC3.tar.bz2
cd php-8.0.0RC3

Step 2. 安裝相關套件

sudo apt install libxml2-dev libsqlite3-dev libpng-dev libonig-dev libmariadb-dev libcurl4-openssl-dev libjpeg-dev libxslt-dev

Step 3. 進行編譯

./configure --enable-opcache --enable-opcache-jit --enable-fpm --enable-cli --enable-bcmath --enable-cgi --enable-gd --enable-intl --enable-mbstring --enable-soap --enable-xml --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-fpm-user=www-data --with-fpm-group=www-data --with-curl --with-imap-ssl --with-sqlite3 --with-zlib --with-xsl --with-openssl --with-jpeg --enable-exif --with-mysqli
make -j$(nproc)
make test
./sapi/cli/php -v
PHP 8.0.0RC3 (cli) (built: Oct 31 2020 12:35:04) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies

Step 4. 編輯 php.ini 啟動 Opcache JIT

vim php.ini-development
# 新增下面內容
zend_extension=/REAL_PATH/php-8.0.0RC3/modules/opcache.so
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.jit=1255
opcache.jit_buffer_size=64M
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

Step 5. 再次執行

./sapi/cli/php -c ./php.ini-development -v
PHP 8.0.0RC3 (cli) (built: Oct 31 2020 12:35:04) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.0RC3, Copyright (c), by Zend Technologies

Step 簡單效能比較

已本身手上有一支每日固定排程,自動產生報表的 PHP 程式來坐比較,需要分析的數據目前約148萬筆資料,會進行簡單的數學運算,不需要連接資料庫,在這種條件下:

PHP 7.4.12 需要 4.448 秒
PHP 8.0.RC3(無 JIT) 需要 4.292 秒
PHP 8.0.RC3(有 JIT) 需要 4.083 秒

就這樣的結果來看,PHP 8 是值得期待的,但是不像 PHP 5 到 PHP 7 那樣子實現了大跨度的效能增進。

About the author

codeant administrator