国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
等等,什么?
優(yōu)點(diǎn)
速度!
擴(kuò)展!
缺點(diǎn)
內(nèi)部緩慢
又一次落后了
結(jié)論
2014 年 5 月 28 日文章更新
關(guān)于 PHP、HHVM、Zephir 和 PHPNG 的常見問題
PHP 和 Zephir 的主要區(qū)別是什么?
HHVM 與 PHPNG 如何比較?
Zephir 是否仍在維護(hù)?
使用 Zephir 的優(yōu)勢(shì)是什么?
為什么創(chuàng)建 Zephir?
PHPNG 如何提高 PHP 應(yīng)用程序的性能?
隨著 HHVM 和 Zephir 的出現(xiàn),PHP 的未來是什么?
我可以使用 Zephir 來編寫 PHP 擴(kuò)展嗎?
腳本語言和高級(jí)語言有什么區(qū)別?
HHVM 的即時(shí) (JIT) 編譯方法如何提高性能?
首頁 后端開發(fā) php教程 PHP與PHPNG戰(zhàn)斗HHVM和Zephir

PHP與PHPNG戰(zhàn)斗HHVM和Zephir

Feb 21, 2025 am 11:44 AM

PHP Fights HHVM and Zephir with PHPNG

關(guān)鍵要點(diǎn)

  • PHPNG,PHP 的一個(gè)新分支,正在開發(fā)中,旨在大幅優(yōu)化 PHP,并允許將來使用 JIT 編譯器進(jìn)一步提升性能。它本身并非 JIT 編譯器,而是一個(gè)升級(jí),為日后構(gòu)建優(yōu)秀的 JIT 編譯器奠定基礎(chǔ)。
  • NG 升級(jí)專注于重寫 Zend 引擎的核心部分,以實(shí)現(xiàn)對(duì) PHP 數(shù)據(jù)類型的更好內(nèi)存分配。預(yù)計(jì)這將提高性能并允許更簡(jiǎn)潔的 API。
  • 雖然 PHPNG 承諾與現(xiàn)有擴(kuò)展兼容,但并非所有擴(kuò)展都受支持,一些測(cè)試也失敗了。這些兼容性問題在升級(jí)時(shí)可能會(huì)給共享主機(jī)提供商帶來挑戰(zhàn)。
  • PHP 核心開發(fā)團(tuán)隊(duì)對(duì)變化的緩慢適應(yīng)可能意味著,到 PHPNG 實(shí)施時(shí),它可能只提供性能升級(jí),而無法與 Hack 和 HHVM 競(jìng)爭(zhēng),后者已經(jīng)提供了更多附加功能。

本文由 NewRelic 贊助。感謝您支持使 SitePoint 成為可能的贊助商! 文章的先前版本錯(cuò)誤地將 PHPNG 描述為 JIT 編譯器。情況并非如此,必要的修改已完成。請(qǐng)參閱文章底部了解更多信息。


舊世界中的混亂!幾年前,首先是 HipHop,沒有人關(guān)注。然后突然,HHVM 出現(xiàn)了,引入了 Hack,一切都亂套了——Facebook 創(chuàng)建了一個(gè)新的 PHP 并破壞/修復(fù)了一切(取決于你問誰)。此外,Zephir 出現(xiàn)并威脅要對(duì)所有 PHP 代碼進(jìn)行 C 級(jí)編譯,并完全支持當(dāng)前的 PHP 擴(kuò)展(雖然 Zephir 不打算取代 C 或 PHP,但它確實(shí)允許你編寫類似 PHP 的代碼并將其編譯為 C,這使你可以輕松地將所有 PHP 應(yīng)用程序重寫為可以進(jìn)行封閉源代碼編譯以提高速度和安全性的格式)。對(duì)于替代 PHP 運(yùn)行時(shí)來說,這是蘑菇生長的時(shí)刻,HippyVM 也出現(xiàn)了。

在這一系列變化中,又出現(xiàn)了一個(gè)新的聲音:PHPNG。

正如 Manuel Lemos 介紹的那樣,PHPNG 是 PHP 的一個(gè)新分支,將在 PHP 的一個(gè)尚未確定的未來版本中出現(xiàn)。

等等,什么?

這個(gè)名字有點(diǎn)俗氣(NG = 新一代),而且表達(dá)笨拙的 PHP 版本是核心團(tuán)隊(duì)大幅優(yōu)化 PHP 并允許將來使用 JIT 編譯器進(jìn)一步提升性能的嘗試。PHPNG 本身并非 JIT 編譯器,而是一個(gè)升級(jí),為日后構(gòu)建優(yōu)秀的 JIT 編譯器奠定基礎(chǔ)。PHPNG 分支本身不包含任何 JIT 功能。

PHPNG 由 Dmitry Stogov 在一個(gè)內(nèi)部新聞組主題中提出。Dmitry 負(fù)責(zé) Zend 的性能和優(yōu)化,主要處理 Zend 引擎。NG 升級(jí)專注于重寫 Zend 引擎的核心部分,以實(shí)現(xiàn)對(duì) PHP 數(shù)據(jù)類型的更好內(nèi)存分配。

摘自 Reddit:

NG 的存在是因?yàn)?Zend 在引入 JIT 時(shí)進(jìn)行的實(shí)驗(yàn)在現(xiàn)實(shí)世界中失敗了,原因在于引擎當(dāng)前的設(shè)計(jì)方式,主要是因?yàn)槲覀円恢倍荚诜峙渌袃?nèi)容。NG 補(bǔ)丁改變了規(guī)范,因此我們不再默認(rèn)分配 zvals,這提高了性能并允許更簡(jiǎn)潔的 API。

與任何“改進(jìn) PHP”的嘗試一樣,這次嘗試也有其優(yōu)缺點(diǎn)。

優(yōu)點(diǎn)

速度!

更快的執(zhí)行意味著更快的資源分配,意味著更快的請(qǐng)求處理,意味著更大的請(qǐng)求吞吐量。初步結(jié)果令人鼓舞(1,2)。

性能仍需要與其他替代方案進(jìn)行基準(zhǔn)測(cè)試,但 10-30% 的提升不容小覷。

擴(kuò)展!

由于此升級(jí)是在官方 Zend 引擎上進(jìn)行的,而不是替代運(yùn)行時(shí),因此它幾乎保證了與當(dāng)前擴(kuò)展的兼容性。人們猶豫是否遷移到 HHVM 的最大原因之一是他們習(xí)慣使用的基本擴(kuò)展不可用(在我的例子中是 Phalcon)。就我個(gè)人而言,一個(gè)支持 Phalcon 的更快的 PHP 引擎會(huì)讓我對(duì) Hack 當(dāng)今提供的升級(jí)不太關(guān)心。

所以它保證了擴(kuò)展兼容性……等等。是嗎?哦,不。

缺點(diǎn)

擴(kuò)展!

好得令人難以置信。

并非所有擴(kuò)展都受支持,一些測(cè)試失敗了,我們還有更多改進(jìn)的想法。

公平地說,NG 還很年輕。比我們?cè)?PHP 世界中處理過的任何東西都要年輕得多,而且更像是一個(gè)重大的更新——因此,一些兼容性問題是不可避免的。但我同意 Manuel 的說法,當(dāng)升級(jí)時(shí)間到來時(shí),這可能是大多數(shù)共享主機(jī)提供商的痛點(diǎn)。

盡管我相當(dāng)反對(duì)共享主機(jī)提供商,但我完全理解這可能帶來的問題。當(dāng)我們?cè)噲D讓提供商“使用 PHP5”時(shí),以及最近一次他們需要使用更新版本的 PHP 時(shí),我們都遇到了類似的混亂,因此讓他們進(jìn)行可能引入 BC 中斷的重大轉(zhuǎn)變將是一項(xiàng)艱巨的任務(wù)。

這種對(duì)變化的恐懼將鞏固舊版 PHP 的使用,反過來又會(huì)滋生更多在過時(shí)代碼上工作的極其不合格的 PHP 開發(fā)人員,完全忽略最佳實(shí)踐和漏洞。簡(jiǎn)而言之,我們將重演歷史。這聽起來可能像是世界末日,正如一些人指出的那樣,但我每天都深入?yún)⑴c PHP 的所有領(lǐng)域,并通過一個(gè)完整的收件箱接觸到最低質(zhì)量的領(lǐng)域,我看到了我們現(xiàn)在所處的位置以及我們將去向何處。然而,并非一切都是黑暗的——Heroku 和 DigitalOcean 等解決方案將使人們能夠以低于(或等于)共享主機(jī)提供商的價(jià)格運(yùn)行最新和自定義版本的 PHP。

我最真誠的希望是核心團(tuán)隊(duì)能夠?qū)⑿碌?Zend 引擎完善到足以保持與所有擴(kuò)展向后兼容的程度,但會(huì)向所有未能遵守 NG 規(guī)范和最佳實(shí)踐的擴(kuò)展開發(fā)人員發(fā)出編譯警告。

內(nèi)部緩慢

核心開發(fā)團(tuán)隊(duì)因適應(yīng)變化緩慢而臭名昭著。其他語言中存在多年的現(xiàn)代功能在過去被否決了,直到幾年后才被實(shí)施。

這是否是由于核心開發(fā)團(tuán)隊(duì)缺乏遠(yuǎn)見,就像 Anthony 和 Phil 的帖子所說的那樣,或者是因?yàn)樗?guī)模太小且資金不足而無法快速進(jìn)行任何重大更改,這無關(guān)緊要——內(nèi)部緩慢意味著我們可能永遠(yuǎn)無法在公開場(chǎng)合看到 NG 并擺脫“alpha”狀態(tài),就像神秘的 PHP6 的情況一樣。

這讓我們想到了最后一點(diǎn)。

又一次落后了

由于在 PHP 核心開發(fā)團(tuán)隊(duì)中經(jīng)常看到的固有緩慢性,到 NG 實(shí)施時(shí)(如果真的實(shí)施的話),它將只提供性能升級(jí)。到那時(shí),Hack 和 HHVM(遠(yuǎn)遠(yuǎn)超過標(biāo)準(zhǔn) PHP)將提供如此多的附加功能,比賽將被操縱,PHP 將毫無勝算。

Hack 和 Zephir 中今天可用的類型提示將在這些實(shí)現(xiàn)中扎根。多線程、編譯、獨(dú)立 Web 服務(wù)器——所有這些功能今天都在替代解決方案中可用,而且它們幾乎都已準(zhǔn)備好投入生產(chǎn)。雖然核心開發(fā)團(tuán)隊(duì)正在研究其中的一些功能,而且 PHP 可能在 HHVM 之前就擁有 IIS 支持(這顯然對(duì)某些人來說很重要),但我個(gè)人仍然認(rèn)為這對(duì)于 PHP 官方方面來說還不夠迅速的進(jìn)展。

即使核心團(tuán)隊(duì)確實(shí)決定對(duì)存在問題和需求的所有這些特殊功能投“贊成票”,他們也需要花費(fèi)太長時(shí)間來實(shí)現(xiàn)——而且他們默認(rèn)會(huì)落后,除非引入范式轉(zhuǎn)變并改變他們的整個(gè)工作方式。將源代碼移至 GitHub 是一個(gè)好舉動(dòng),但它只是觸及了表面。

也就是說,Rasmus 本人據(jù)說認(rèn)為 HHVM 在幾年內(nèi)成為 PHP 的核心引擎并非科幻場(chǎng)景。

結(jié)論

撇開 Facebook 相關(guān)的所有權(quán)(這本身就帶有許多負(fù)面含義),HHVM 通過展示如何進(jìn)行此類升級(jí)來推動(dòng)開發(fā)人員朝著正確的方向前進(jìn)。這推動(dòng)了創(chuàng)新,并迫使那些長期以來一直安于自己寶座的人站起來,伸展雙腿,看看他們是否還能奔跑。Facebook 的積極進(jìn)取迫使 PHP 世界重新審視并思考正在發(fā)生的事情,很快它就流行起來。

競(jìng)爭(zhēng)是令人敬畏的。無論這將我們帶到哪里,我都對(duì)此感到樂觀。

2014 年 5 月 28 日文章更新

在與 Phil Sturgeon 進(jìn)行電子郵件交流之后,并在閱讀官方聲明之后,我已經(jīng)編輯了上述文本的部分內(nèi)容。簡(jiǎn)而言之,我將 PHPNG 分類為 JIT,而它顯然不是,而只是一個(gè)性能升級(jí),這將允許核心團(tuán)隊(duì)稍后開發(fā)一個(gè)合適的 JIT 編譯器。

關(guān)于 PHP、HHVM、Zephir 和 PHPNG 的常見問題

PHP 和 Zephir 的主要區(qū)別是什么?

PHP 和 Zephir 都是用于 Web 開發(fā)的腳本語言。PHP 是一種廣泛使用的開源語言,而 Zephir 是一種高級(jí)語言,允許開發(fā)人員為 PHP 編寫擴(kuò)展。Zephir 提供靜態(tài)類型語法,這有助于防止 PHP 中可能發(fā)生的錯(cuò)誤。但是,PHP 擁有更大的社區(qū)和更多可用的資源,這對(duì)開發(fā)人員來說可能是有益的。

HHVM 與 PHPNG 如何比較?

HHVM(HipHop 虛擬機(jī))和 PHPNG(PHP 新一代)都是執(zhí)行 PHP 代碼的引擎。HHVM 由 Facebook 開發(fā),并使用即時(shí) (JIT) 編譯方法來實(shí)現(xiàn)卓越的性能。另一方面,PHPNG 是 PHP 的一個(gè)內(nèi)部項(xiàng)目,旨在提高 PHP 應(yīng)用程序的性能。它通過更改 PHP 內(nèi)部表示值和對(duì)象的方式來實(shí)現(xiàn)這一點(diǎn),從而導(dǎo)致顯著的內(nèi)存使用改進(jìn)。

Zephir 是否仍在維護(hù)?

根據(jù)最近的更新,Zephir 不再積極維護(hù)。這意味著雖然該語言仍然可用,但它可能不會(huì)接收任何可能出現(xiàn)的潛在問題的更新或修復(fù)。

使用 Zephir 的優(yōu)勢(shì)是什么?

Zephir 為開發(fā)人員提供了許多優(yōu)勢(shì)。它提供靜態(tài)類型語法,這有助于防止錯(cuò)誤。它還允許開發(fā)人員為 PHP 編寫擴(kuò)展,從而提供一種提高 PHP 應(yīng)用程序性能的方法。

為什么創(chuàng)建 Zephir?

創(chuàng)建 Zephir 的目的是提供一種高級(jí)語言,允許開發(fā)人員為 PHP 編寫擴(kuò)展。目標(biāo)是通過允許開發(fā)人員使用更容易優(yōu)化和管理的語言編寫關(guān)鍵代碼部分來提高 PHP 應(yīng)用程序的性能。

PHPNG 如何提高 PHP 應(yīng)用程序的性能?

PHPNG 通過更改 PHP 內(nèi)部表示值和對(duì)象的方式來提高 PHP 應(yīng)用程序的性能。這導(dǎo)致顯著的內(nèi)存使用改進(jìn),并可能導(dǎo)致 PHP 應(yīng)用程序的執(zhí)行時(shí)間更快。

隨著 HHVM 和 Zephir 的出現(xiàn),PHP 的未來是什么?

盡管出現(xiàn)了 HHVM 和 Zephir,PHP 仍然是廣泛使用的 Web 開發(fā)語言。雖然 HHVM 和 Zephir 提供了性能改進(jìn),但 PHP 擁有龐大的社區(qū)和豐富的可用資源。PHP 的未來看起來很有希望,并且正在不斷努力改進(jìn)其性能和功能。

我可以使用 Zephir 來編寫 PHP 擴(kuò)展嗎?

是的,Zephir 的主要優(yōu)勢(shì)之一是它允許開發(fā)人員為 PHP 編寫擴(kuò)展。這可能是提高 PHP 應(yīng)用程序性能的一種方法。

腳本語言和高級(jí)語言有什么區(qū)別?

腳本語言是一種編程語言,用于自動(dòng)化本來需要由人工操作員一步一步執(zhí)行的任務(wù)。另一方面,高級(jí)語言是一種編程語言,它與計(jì)算機(jī)的細(xì)節(jié)具有很強(qiáng)的抽象性,使其更易于閱讀和編寫。

HHVM 的即時(shí) (JIT) 編譯方法如何提高性能?

HHVM 的即時(shí) (JIT) 編譯方法通過在執(zhí)行之前將字節(jié)碼編譯為機(jī)器碼來提高性能。這允許進(jìn)行優(yōu)化,可以顯著提高 PHP 應(yīng)用程序的執(zhí)行速度。

以上是PHP與PHPNG戰(zhàn)斗HHVM和Zephir的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

我如何了解最新的PHP開發(fā)和最佳實(shí)踐? 我如何了解最新的PHP開發(fā)和最佳實(shí)踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什么是PHP,為什么它用于Web開發(fā)? 什么是PHP,為什么它用于Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設(shè)置PHP時(shí)區(qū)? 如何設(shè)置PHP時(shí)區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

如何在操作系統(tǒng)(Windows,MacOS,Linux)上安裝PHP? 如何在操作系統(tǒng)(Windows,MacOS,Linux)上安裝PHP? Jun 20, 2025 am 01:02 AM

安裝PHP的方法因操作系統(tǒng)而異,以下是具體步驟:1.Windows用戶可使用XAMPP一鍵安裝包或手動(dòng)配置,下載XAMPP并安裝,選擇PHP組件或?qū)HP加入環(huán)境變量;2.macOS用戶可通過Homebrew安裝PHP,運(yùn)行相應(yīng)命令安裝并配置Apache服務(wù)器;3.Linux用戶(Ubuntu/Debian)可使用APT包管理器更新源后安裝PHP及常用擴(kuò)展,并通過創(chuàng)建測(cè)試文件驗(yàn)證安裝是否成功。

我如何驗(yàn)證PHP中的用戶輸入以確保其符合某些標(biāo)準(zhǔn)? 我如何驗(yàn)證PHP中的用戶輸入以確保其符合某些標(biāo)準(zhǔn)? Jun 22, 2025 am 01:00 AM

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

如何使用session_destroy()在PHP中破壞會(huì)話? 如何使用session_destroy()在PHP中破壞會(huì)話? Jun 20, 2025 am 01:06 AM

要完全銷毀PHP中的會(huì)話,必須先調(diào)用session_start()啟動(dòng)會(huì)話,再調(diào)用session_destroy()刪除所有會(huì)話數(shù)據(jù)。1.首先使用session_start()確保會(huì)話已啟動(dòng);2.然后調(diào)用session_destroy()清除會(huì)話數(shù)據(jù);3.可選但推薦:手動(dòng)unset$_SESSION數(shù)組以清除全局變量;4.同時(shí)刪除會(huì)話cookie,防止用戶保留會(huì)話狀態(tài);5.最后注意在銷毀后重定向用戶,并避免立即復(fù)用會(huì)話變量,否則需重新啟動(dòng)會(huì)話。這樣做能確保用戶徹底退出系統(tǒng),不留殘留信息。

編寫清潔和可維護(hù)的PHP代碼的最佳實(shí)踐是什么? 編寫清潔和可維護(hù)的PHP代碼的最佳實(shí)踐是什么? Jun 24, 2025 am 12:53 AM

寫干凈、易維護(hù)的PHP代碼關(guān)鍵在于清晰命名、遵循標(biāo)準(zhǔn)、合理結(jié)構(gòu)、善用注釋和可測(cè)試性。1.使用明確的變量、函數(shù)和類名,如$userData和calculateTotalPrice();2.遵循PSR-12標(biāo)準(zhǔn)統(tǒng)一代碼風(fēng)格;3.按職責(zé)拆分代碼結(jié)構(gòu),使用MVC或Laravel式目錄組織;4.避免面條式代碼,將邏輯拆分為單一職責(zé)的小函數(shù);5.在關(guān)鍵處添加注釋并撰寫接口文檔,明確參數(shù)、返回值和異常;6.提高可測(cè)試性,采用依賴注入、減少全局狀態(tài)和靜態(tài)方法。這些做法提升代碼質(zhì)量、協(xié)作效率和后期維護(hù)便利性。

See all articles