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

目錄
等等,什麼?
優(yōu)點
速度!
擴展!
缺點
內(nèi)部緩慢
又一次落後了
結論
2014 年 5 月 28 日文章更新
關於 PHP、HHVM、Zephir 和 PHPNG 的常見問題
PHP 和 Zephir 的主要區(qū)別是什麼?
HHVM 與 PHPNG 如何比較?
Zephir 是否仍在維護?
使用 Zephir 的優(yōu)勢是什麼?
為什麼創(chuàng)建 Zephir?
PHPNG 如何提高 PHP 應用程序的性能?
隨著 HHVM 和 Zephir 的出現(xiàn),PHP 的未來是什麼?
我可以使用 Zephir 來編寫 PHP 擴展嗎?
腳本語言和高級語言有什麼區(qū)別?
HHVM 的即時 (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

關鍵要點

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

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


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

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

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

等等,什麼?

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

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

摘自 Reddit:

NG 的存在是因為 Zend 在引入 JIT 時進行的實驗在現(xiàn)實世界中失敗了,原因在於引擎當前的設計方式,主要是因為我們一直都在分配所有內(nèi)容。 NG 補丁改變了規(guī)範,因此我們不再默認分配 zvals,這提高了性能並允許更簡潔的 API。

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

優(yōu)點

速度!

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

性能仍需要與其他替代方案進行基準測試,但 10-30% 的提升不容小覷。

擴展!

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

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

缺點

擴展!

好得令人難以置信。

並非所有擴展都受支持,一些測試失敗了,我們還有更多改進的想法。

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

儘管我相當反對共享主機提供商,但我完全理解這可能帶來的問題。當我們試圖讓提供商“使用PHP5”時,以及最近一次他們需要使用更新版本的PHP 時,我們都遇到了類似的混亂,因此讓他們進行可能引入BC 中斷的重大轉變將是一項艱鉅的任務。

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

我最真誠的希望是核心團隊能夠?qū)⑿碌腪end 引擎完善到足以保持與所有擴展向後兼容的程度,但會向所有未能遵守NG 規(guī)範和最佳實踐的擴展開發(fā)人員發(fā)出編譯警告。

內(nèi)部緩慢

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

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

這讓我們想到了最後一點。

又一次落後了

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

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

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

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

結論

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

競爭是令人敬畏的。無論這將我們帶到哪裡,我都對此感到樂觀。

2014 年 5 月 28 日文章更新

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

關於 PHP、HHVM、Zephir 和 PHPNG 的常見問題

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

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

HHVM 與 PHPNG 如何比較?

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

Zephir 是否仍在維護?

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

使用 Zephir 的優(yōu)勢是什麼?

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

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

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

PHPNG 如何提高 PHP 應用程序的性能?

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

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

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

我可以使用 Zephir 來編寫 PHP 擴展嗎?

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

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

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

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

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

以上是PHP與PHPNG戰(zhàn)鬥HHVM和Zephir的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在PHP中實施身份驗證和授權? 如何在PHP中實施身份驗證和授權? Jun 20, 2025 am 01:03 AM

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

我如何了解最新的PHP開發(fā)和最佳實踐? 我如何了解最新的PHP開發(fā)和最佳實踐? 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

如何設置PHP時區(qū)? 如何設置PHP時區(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一鍵安裝包或手動配置,下載XAMPP並安裝,選擇PHP組件或?qū)HP加入環(huán)境變量;2.macOS用戶可通過Homebrew安裝PHP,運行相應命令安裝並配置Apache服務器;3.Linux用戶(Ubuntu/Debian)可使用APT包管理器更新源後安裝PHP及常用擴展,並通過創(chuàng)建測試文件驗證安裝是否成功。

我如何驗證PHP中的用戶輸入以確保其符合某些標準? 我如何驗證PHP中的用戶輸入以確保其符合某些標準? Jun 22, 2025 am 01:00 AM

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

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

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

什麼是php(serialize(),Unserialize())中的數(shù)據(jù)序列化? 什麼是php(serialize(),Unserialize())中的數(shù)據(jù)序列化? Jun 22, 2025 am 01:03 AM

thephpfunctionserize()andunSerialize()redustoconvertComplexdatStructDestoresToroStoroStoroSandaBackagagain.1.Serialize()

See all articles