婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP8新特性之JIT案例講解

PHP8新特性之JIT案例講解

熱門標簽:手機外呼系統什么原理 上海400客服電話怎么申請 銀行信貸電話機器人 凱立德地鐵站地圖標注 合肥ai電銷機器人費用 400電話個人能不能辦理 天津電銷外呼系統違法嗎 溫州外呼系統招商 滄州電銷外呼系統價格

PHP8 alpha1已經在昨天發布,相信關于JIT是大家最關心的,它到底怎么用,有什么要注意的,以及性能提升到底咋樣?

首先,我們來看一張圖:

左圖是 PHP 8之前的Opcache流程示意圖, 右圖是 PHP 8中的Opcache示意圖, 可以看出幾個關鍵點:

PHP8的JIT是在Opcache之中提供的

目前PHP8只支持x86架構的CPU

JIT是在原來Opcache優化的優化基礎之上進行優化的,不是替代

事實上JIT共用了很多原來Opcache做優化的基礎數據結構,比如data flow graph, call graph, SSA等,關于這部分,后續如果有時間,可以單獨在寫一個文章來介紹,今天就只是著重在使用層面。

下載安裝好以后,除掉原有的opcache配置以外,對于JIT我們需要添加如下配置到php.ini:

opcache.jit=1205

opcache.jit_buffer_size=64M

opcache.jit這個配置看起來稍微有點復雜,我來解釋下, 這個配置由4個獨立的數字組成,從左到右分別是( 請注意,這個是基于目前alpha1的版本設置,一些配置可能會隨著后續版本做微調 ):

是否在生成機器碼點時候使用AVX指令, 需要CPU支持: 0: 不使用

1: 使用

寄存器分配策略: 0: 不使用寄存器分配

1: 局部(block)域分配

2: 全局(function)域分配

JIT觸發策略: 0: PHP腳本載入的時候就JIT

1: 當函數第一次被執行時JIT

2: 在一次運行后,JIT調用次數最多的百分之(opcache.prof_threshold * 100)的函數

3: 當函數/方法執行超過N(N和opcache.jit_hot_func相關)次以后JIT

4: 當函數方法的注釋中含有@jit的時候對它進行JIT

5: 當一個Trace執行超過N次(和opcache.jit_hot_loop, jit_hot_return等有關)以后JIT

JIT優化策略,數值越大優化力度越大: 0: 不JIT

1: 做opline之間的跳轉部分的JIT

2: 內斂opcode handler調用

3: 基于類型推斷做函數級別的JIT

4: 基于類型推斷,過程調用圖做函數級別JIT

5: 基于類型推斷,過程調用圖做腳本級別的JIT

基于此,我們可以大概得到如下幾個結論:

盡量使用12x5型的配置,此時應該是效果最優的

對于x, 如果是腳本級別的,推薦使用0, 如果是Web服務型的,可以根據測試結果選擇3或5

@jit的形式,在有了attributes以后,可能變為>

現在,我們來測試下啟用和不啟用JIT的時候,Zend/bench.php的差異,首先是不啟用(php -d opcache.jit_buffer_size=0 Zend/bench.php):

simple 0.008

simplecall 0.004

simpleucall 0.004

simpleudcall 0.004

mandel 0.035

mandel2 0.055

ackermann(7) 0.020

ary(50000) 0.004

ary2(50000) 0.003

ary3(2000) 0.048

fibo(30) 0.084

hash1(50000) 0.013

hash2(500) 0.010

heapsort(20000) 0.027

matrix(20) 0.026

nestedloop(12) 0.023

sieve(30) 0.013

strcat(200000) 0.006

------------------------

Total 0.387

根據上面的介紹,我們選擇opcache.jit=1205, 因為bench.php是腳本(php -d opcache.jit_buffer_size=64M -d opcache.jit=1205 Zend/bench.php):

simple 0.002

simplecall 0.001

simpleucall 0.001

simpleudcall 0.001

mandel 0.010

mandel2 0.011

ackermann(7) 0.010

ary(50000) 0.003

ary2(50000) 0.002

ary3(2000) 0.018

fibo(30) 0.031

hash1(50000) 0.011

hash2(500) 0.008

heapsort(20000) 0.014

matrix(20) 0.015

nestedloop(12) 0.011

sieve(30) 0.005

strcat(200000) 0.004

------------------------

Total 0.157

可見, 對于Zend/bench.php, 相比不開啟JIT,開啟了以后,耗時降低將近60%,性能提升將近2倍 。

對于大家研究學習來說,可以通過opcache.jit_debug來觀測JIT后生成的匯編結果,比如對于:

function simple() {
$a = 0;

for ($i = 0; $i  1000000; $i++)

$a++;

}

我們通過php -d opcache.jit=1205 -dopcache.jit_debug=0x01 可以看到:

JIT$simple: ; (/tmp/1.php)

sub $0x10, %rsp

xor %rdx, %rdx

jmp .L2

.L1:

add $0x1, %rdx

.L2:

cmp $0x0, EG(vm_interrupt)

jnz .L4

cmp $0xf4240, %rdx

jl .L1

mov 0x10(%r14), %rcx

test %rcx, %rcx

jz .L3

mov $0x1, 0x8(%rcx)

.L3:

mov 0x30(%r14), %rax

mov %rax, EG(current_execute_data)

mov 0x28(%r14), %edi

test $0x9e0000, %edi

jnz JIT$$leave_function

mov %r14, EG(vm_stack_top)

mov 0x30(%r14), %r14

cmp $0x0, EG(exception)

mov (%r14), %r15

jnz JIT$$leave_throw

add $0x20, %r15

add $0x10, %rsp

jmp (%r15)

.L4:

mov $0x45543818, %r15

jmp JIT$$interrupt_handler

而如果我們采用opcache.jit=1201, 我們可以得到如下結果:

JIT$simple: ; (/tmp/1.php)

sub $0x10, %rsp

call ZEND_QM_ASSIGN_NOREF_SPEC_CONST_HANDLER

add $0x40, %r15

jmp .L2

.L1:

call ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER

cmp $0x0, EG(exception)

jnz JIT$$exception_handler

.L2:

cmp $0x0, EG(vm_interrupt)

jnz JIT$$interrupt_handler

call ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER

cmp $0x0, EG(exception)

jnz JIT$$exception_handler

cmp $0x452a0858, %r15d

jnz .L1

add $0x10, %rsp

jmp ZEND_RETURN_SPEC_CONST_LABEL

你也可以嘗試各種debug的配置,比如opcache.jit_debug=0xff,將會有更多的信息輸出。

好了,JIT的使用就簡單介紹到這里,關于JIT本身的實現等細節,以后有時間,我再來寫吧。

大家現在就可以去php.net下載PHP8來測試了 :)

thanks

到此這篇關于PHP8新特性之JIT案例講解的文章就介紹到這了,更多相關PHP8新特性之JIT內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PHP8.0新功能之Match表達式的使用
  • php curl發起get與post網絡請求案例詳解
  • PHP如何刪除關聯數組中鍵值
  • PHP獲取文件屬性的最簡單方法
  • PHP中國際化的字符串排序和比較對象詳解

標簽:怒江 溫州 七臺河 白城 赤峰 酒泉 洛陽 金華

巨人網絡通訊聲明:本文標題《PHP8新特性之JIT案例講解》,本文關鍵詞  PHP8,新特性,新,特性,之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP8新特性之JIT案例講解》相關的同類信息!
  • 本頁收集關于PHP8新特性之JIT案例講解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲视频在线一区| 久久亚洲二区三区| 成人三级伦理片| 国产一区二区三区日韩| 老汉av免费一区二区三区| 婷婷六月综合网| 蜜臀久久久久久久| 免费一级片91| 国产伦精品一区二区三区免费| 精品制服美女丁香| 精品在线播放免费| 国产一区二区三区综合| 国产成人免费视频网站| 粉嫩欧美一区二区三区高清影视 | 精品国产乱码久久久久久浪潮| 欧美精品国产精品| 日韩免费在线观看| 国产欧美日韩视频一区二区| 久久久久国产精品麻豆ai换脸 | 久久精品国产精品亚洲精品| 蜜桃视频免费观看一区| 国内精品伊人久久久久av一坑 | 国产精品1区二区.| 成人爽a毛片一区二区免费| 成人av免费在线| 欧美日韩一区不卡| 久久久久久97三级| 亚洲一区二区视频| 九色porny丨国产精品| 97aⅴ精品视频一二三区| 欧美久久高跟鞋激| 国产精品免费免费| 同产精品九九九| 成人黄色小视频| 欧美伊人久久久久久久久影院| 日韩精品一区二区三区视频| 亚洲日韩欧美一区二区在线| 免费精品视频在线| www.欧美日韩| 国产精品亚洲第一区在线暖暖韩国| 91福利精品第一导航| 91亚洲精品乱码久久久久久蜜桃 | 国产成人在线网站| 色av成人天堂桃色av| 日韩亚洲欧美成人一区| 亚洲欧美日韩国产手机在线 | 国产精品天美传媒| 日本亚洲免费观看| 色av成人天堂桃色av| 久久综合999| 日av在线不卡| 欧美日韩成人综合天天影院| 综合久久久久久久| 岛国精品在线播放| 91 com成人网| 亚洲午夜久久久久久久久电影网| 成人晚上爱看视频| 2欧美一区二区三区在线观看视频| 亚洲一区自拍偷拍| 色综合视频在线观看| 国产欧美一区二区三区沐欲| 九一九一国产精品| 精品免费国产一区二区三区四区| 一区二区三区在线观看国产| 不卡视频一二三| 中文字幕的久久| 成人va在线观看| 国产亚洲精品超碰| 国产一区二区网址| 欧美精品一区男女天堂| 麻豆成人综合网| 欧美一区二区三区白人| 日本成人中文字幕在线视频| 欧美高清视频不卡网| 午夜久久电影网| 91麻豆精品国产综合久久久久久 | 亚洲福利一区二区| 91福利在线免费观看| 一区二区三区精密机械公司| 色8久久精品久久久久久蜜| 一区二区三区四区不卡在线| 色欲综合视频天天天| 亚洲一二三专区| 91精品国产综合久久香蕉麻豆 | 国产亚洲一本大道中文在线| 激情亚洲综合在线| 欧美经典三级视频一区二区三区| 国产乱淫av一区二区三区| 国产日韩欧美精品一区| 北条麻妃国产九九精品视频| 亚洲乱码国产乱码精品精的特点| 色婷婷av久久久久久久| 日韩极品在线观看| 久久久久久久久久久黄色| 成人教育av在线| 性感美女极品91精品| 日韩欧美黄色影院| 国产自产2019最新不卡| 国产精品午夜在线观看| 欧美视频中文一区二区三区在线观看| 午夜日韩在线观看| 久久久久久免费网| 欧美天天综合网| 一区二区在线免费观看| 日韩精品专区在线| 99国产欧美另类久久久精品 | 精品成人私密视频| 91在线观看成人| 美女视频黄频大全不卡视频在线播放| 2021久久国产精品不只是精品| jvid福利写真一区二区三区| 日韩中文字幕一区二区三区| 中文字幕av一区 二区| 欧美视频在线观看一区| 成人精品电影在线观看| 久久电影网站中文字幕| 亚洲婷婷在线视频| 亚洲精品在线观| 欧美精品高清视频| 91香蕉视频mp4| 国产一区二区三区国产| 日韩中文字幕亚洲一区二区va在线 | 欧美日韩小视频| 国产v日产∨综合v精品视频| 亚洲va中文字幕| 亚洲女人小视频在线观看| 久久蜜桃av一区精品变态类天堂| 欧美图片一区二区三区| 99国产欧美久久久精品| 国产成人av一区二区三区在线 | 日韩午夜在线播放| 欧美三级中文字| 99久久国产综合精品女不卡| 国产裸体歌舞团一区二区| 日本aⅴ免费视频一区二区三区| 国产精品乱码人人做人人爱| 日韩精品专区在线影院观看| 欧美日韩精品三区| 欧美综合一区二区三区| 99视频热这里只有精品免费| 国产激情一区二区三区四区| 精品一区二区三区免费| 日韩av在线播放中文字幕| 亚洲国产日韩一区二区| 亚洲精品欧美在线| 亚洲欧美日韩国产综合| 综合亚洲深深色噜噜狠狠网站| 国产人久久人人人人爽| 国产欧美日韩三级| 国产精品久久久久桃色tv| 国产女人18水真多18精品一级做| 久久精品视频在线免费观看| ww久久中文字幕| 欧美激情中文字幕| 国产精品第13页| 日韩毛片一二三区| 一区二区三区 在线观看视频 | 美国毛片一区二区三区| 捆绑调教一区二区三区| 国产成人午夜精品影院观看视频 | 欧美少妇bbb| 日韩一区二区视频在线观看| 日韩精品中文字幕在线一区| 精品国产免费视频| 日本一区二区三区四区在线视频| 国产精品三级av在线播放| 亚洲美女屁股眼交| 天天色综合天天| 国产精品一区二区三区99| 成人精品视频一区二区三区尤物| 91免费观看在线| 欧美日本一道本在线视频| 精品日韩欧美在线| 中文字幕日韩欧美一区二区三区| 一区二区三区成人| 国内成人免费视频| 91亚洲资源网| 91精品国产91热久久久做人人| 国产亚洲精品7777| 性做久久久久久| 成人永久免费视频| 91.成人天堂一区| 国产精品另类一区| 日本欧美一区二区| 成人av网址在线观看| 欧美一个色资源| 亚洲欧洲综合另类| 韩国三级在线一区| 欧美欧美欧美欧美首页| 亚洲欧洲精品天堂一级| 蜜桃视频免费观看一区| 色先锋久久av资源部| 久久久av毛片精品| 亚洲不卡一区二区三区| 成人av电影观看| 日韩欧美国产综合在线一区二区三区| 成人免费一区二区三区视频 | 精品电影一区二区三区| 亚洲精品久久7777| 成人天堂资源www在线|