java php,PHP 8 中確認支持 JIT!

 2023-10-22 阅读 23 评论 0

摘要:一直以來,大家都在討論 PHP 8 中是否會支持 JIT(Just-In-Time)即時編譯執行功能,最新消息是官方已經確認將其引入。PHP 實現了一個虛擬機 Zend VM,它會將人類可讀腳本編譯成虛擬機理解的指令,也就是操作碼,這個執行階段就是

640?wx_fmt=gif

一直以來,大家都在討論 PHP 8 中是否會支持 JIT(Just-In-Time)即時編譯執行功能,最新消息是官方已經確認將其引入。


640?wx_fmt=jpeg


PHP 實現了一個虛擬機 Zend VM,它會將人類可讀腳本編譯成虛擬機理解的指令,也就是操作碼,這個執行階段就是“編譯時(Compile Time)”;在“運行時(Runtime)”執行階段,虛擬機?Zend VM 會執行這些編譯好的操作碼。


通常編譯時與運行時兩個階段是獨立分開的,腳本編譯完成后,像 APC 與 OPCache 這樣的字節碼緩存組件會緩存這些操作碼。而 JIT 去掉了編譯時階段,它將這編譯時與運行時兩個階段合為一體,實現即時編譯與執行。

java php,

JIT 是一種編譯器策略,它將代碼表述為一種中間狀態,在運行時將其轉換為依賴于體系結構的機器碼,并即時執行。在 PHP 中,這意味著 JIT 將為 Zend VM 生成的指令視為中間表述,并以依賴于體系結構的機器碼執行,也就是說托管代碼的不再是 Zend VM,而是更為底層的 CPU。


雖然自 PHP 7.0 以來,通過優化核心數據結構 HashTable、強化 Zend VM 中某些操作碼與持續改進 OPCache 的 Optimizer 組件等具體措施,PHP 性能得到了顯著提升,但是實際上這些優化似乎已經走到極限了。現在 JIT 從底層著手,被認為是目前提升 PHP 性能的最佳出路。


關于是否引入 JIT 的官方投票結果已于近日公布,因為大部分核心開發者投了贊成票,所以?PHP 8 中將會支持?JIT。


另外值得一提的是,PHP JIT 對于使用 PHP 的網站來說提速可能并不明顯,因為 JIT 在?CPU 密集型的代碼上效果最好,而一般情況下,用 PHP 編寫的程序都是 I/O 密集型的。

php新特性、

簡單來說就是,PHP 程序往往受限于 I/O 而不是 CPU,使 PHP 代碼運行速度變慢的因素往往是它們正在執行的 I/O 操作,包括連接、讀取和寫入數據庫、高速緩存、文件與套接字等。


PHP 中 CPU 密集型代碼的一個例子是?Zend/bench.php。


那么 PHP 中的 JIT 將會在哪里發揮作用呢?答案是數學領域。


關于 PHP JIT 的詳細介紹,可以查看:https://blog.krakjoe.ninja/2019/03/php-gr8.html。

Python jit?本文經授權轉自開源中國(ID:oschina2013)。



640?wx_fmt=jpeg

?熱 文?推 薦?

?賈躍亭吹過的牛,蘋果來實現?

?一行代碼引發的恐懼

?Google 產品的消亡史!

?@程序員,你會教自己的孩子學習編程嗎?

?代碼重構!你敢嗎?!

?30位90后霸榜! 福布斯: 比你年輕、比你有顏、比你有才華, 就是他們了!

?Facebook開源圖嵌入“神器”:無需GPU,高效處理數十億級實體圖形 | 極客頭條

?OpenStack已死?恐怕你想多了 | 技術頭條

?刺激!我31歲敲代碼10年,明天退休!


System.out.println("點個在看吧!");
console.log("點個在看吧!");
print("點個在看吧!");
printf("點個在看吧!\n");
cout?<<?"點個在看吧!"?<<?endl;
Console.WriteLine("點個在看吧!");
Response.Write("點個在看吧!");
alert("點個在看吧!")
echo "點個在看吧!"

640?wx_fmt=png你點的每個“在看”,我都認真當成了喜歡

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/163179.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息