日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP内核探索:Zend引擎

發布時間:2025/5/22 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP内核探索:Zend引擎 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信很多人都聽說過 Zend Engine 這個名詞,也有很多人知道 Zend Engine 就是 PHP 語言的核心,但若要問一句:Zend Engine 到底存在于何處?或者說,Zend Engine 究竟是在什么時候怎么發揮作用讓 PHP 源碼輸出我們想要的東西的?

Zend引擎是PHP實現的核心,提供了語言實現上的基礎設施。例如:PHP的語法實現,腳本的編譯運行環境, 擴展機制以及內存管理等,當然這里的PHP指的是官方的PHP實現(除了官方的實現, 目前比較知名的有facebook的hiphop實現,不過到目前為止,PHP還沒有一個標準的語言規范),而PHP則提供了請求處理和其他Web服務器的接口(SAPI)。

要理解 Zend Engine 的作用,就不能不理解為什么會出現,PHP 為什么需要 Zend Engine, Zend Engine 的出現為 PHP 解決了什么問題。PHP 發展到 3.0 版本的時候,此時 PHP 已經很普及了。“在 PHP3 的頂峰,Internet 上 10% 的 web 服務器上都安裝了它”,PHP Manual 如是說。廣泛的應用必然帶來更高的要求。但此時的 PHP3 卻有些力不從心了,這主要是因為 PHP3 采用的是邊解釋邊執行的運行方式,運行效率很受其影響。其次,代碼整體耦合度比較高,可擴展性也不夠好,不利于應付各種各樣需求。因此,此時在 PHP 界里已經有點中流砥柱作用的 Zeev Suraski 和 Andi Gutmans 決定重寫代碼以解決這兩個問題。最終他們倆把該項技術的核心引擎命名為 Zend Engine,Zend 的意思即為 Zeev + Andi 。

Zend Engine 最主要的特性就是把 PHP 的邊解釋邊執行的運行方式改為先進行預編譯(Compile),然后再執行(Execute)。這兩者的分開給 PHP 帶來了革命性的變化:執行效率大幅提高;由于實行了功能分離,降低了模塊間耦合度,可擴展性也大大增強。此時 PHP 已經能很方便的應付各種各樣的 BT 需求了,而伴隨 PHP 4.4.x ―可能是 PHP4 系列的最后一個分支―的發布,PHP 的大部分開發人員已經將注意力放在了 PHP5 或者 PHP6 上面,以后發布的基本上就是一些 Bug Fix Release??梢哉f第一代的 Zend Engine 是已經在站最后一班崗了。

2004 年 7 月,PHP 5 發布,支持 PHP5 的是 Zend Engine 2.0 版本。這個版本主要是對 PHP 的 OO 功能進行了改進(我沒有提集成 SQLite、PDO 等特性是因為我們現在談的主要是 Zend Engine 而非 PHP)。核心執行方式(非 OO 部分)較PHP4 的1.0 版本變動不大,所以 PHP5 純粹的執行速度相對于 PHP4 沒有大的提高。而預計將于本月中旬發布的 PHP 5.1 版本則會攜帶 Zend Engine 2.1 版本,這個版本將提供新的執行方式,執行速度也會快上許多,至少要比 PHP5.0 相對于 PHP4.x 的差別要大很多,所以,PHP 5.1 將會是一個很了很令人期待的版本。

但并非 PHP5 系列的 Zend Engine 2 就完美無缺了。前面已經提到過,Zend Engine 將代碼分成編譯和執行兩大部分。一般情況下,我們的代碼完成以后就很少再去改變了。但執行時 PHP 卻不得不還得一次又一次的重復編譯,這根本就是毫無必要的。而且通常情況下,編譯的所花費的時間并不比執行少多少,說是五五開并不為過,因此這極大的浪費了機器的 CPU?;?Zend Engine 3.0 的 PHP6 將試圖解決這個問題。除此之外,目前的 PHP 對多字節的字符處理也是 PHP 的一大致命缺陷。這在人們聯系日益國際化的今天幾乎是不可忍受的。而無數人在抨擊 PHP 或 比較 ASP 等同類語言時總是不可避免的要提到這一點。同時受到 IBM 方面的壓力,PHP6 也將會把對多字節字符的處理提到首要日程。這在 PHP6 的 Dev 版本中已經得到體現。

目前PHP的實現和Zend引擎之間的關系非常緊密,甚至有些過于緊密了,例如很多PHP擴展都是使用的Zend API, 而Zend正是PHP語言本身的實現,PHP只是使用Zend這個內核來構建PHP語言的,而PHP擴展大都使用Zend API, 這就導致PHP的很多擴展和Zend引擎耦合在一起了,后來才有PHP核心開發者就提出將這種耦合解開的建議。

目前PHP的受歡迎程度是毋庸置疑的,但凡流行的語言通常都會出現這個語言的其他實現版本, 這在Java社區里就非常明顯,目前已經有非常多基于JVM的語言了,例如IBM的Project Zero就實現了一個基于JVM的PHP實現, .NET也有類似的實現,通常他們這樣做的原因無非是因為:他們喜歡這個語言,但又不想放棄原有的平臺, 或者對現有的語言實現不滿意,處于性能或者語言特性等(HipHop就是這樣誕生的)。

很多腳本語言中都會有語言擴展機制,PHP中的擴展通常是通過Pear庫或者原生擴展,在Ruby中則這兩者的界限不是很明顯, 他們甚至會提供兩套實現,一個主要用于在無法編譯的環境下使用,而在合適的環境則使用C實現的原生擴展, 這樣在效率和可移植性上都可以保證。目前這些為PHP編寫的擴展通常都無法在其他的PHP實現中實現重用, HipHop的做法是對最為流行的擴展進行重寫。如果PHP擴展能和ZendAPI解耦,則在其他語言中重用這些擴展也將更加容易了。

總結

以上是生活随笔為你收集整理的PHP内核探索:Zend引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人操女人视频网站 | 国产孕妇孕交大片孕 | 特级西西人体444www | 与子敌伦刺激对白播放的优点 | 国产一区二区三区黄 | 丰满人妻一区二区三区四区 | 久久精品无码毛片 | 欧美丰满熟妇bbb久久久 | 三级理论电影 | 国产精品日韩 | 成人h动漫精品一区二区下载 | 免费激情 | 91亚洲国产成人精品一区二区三 | 91精品国产综合久久久蜜臀粉嫩 | 炕上如狼似虎的呻吟声 | 久久久久久久久久久国产 | 亚洲成人黄色网 | 日本一区二区三区中文字幕 | 天天色网站 | 国产成人精品综合在线观看 | 伊人久久激情 | 99精品欧美一区二区三区综合在线 | 国产精品又黄又爽又色无遮挡 | 国产日皮视频 | 波多野结衣视频一区二区 | 伊人激情视频 | 在线中文天堂 | 性欧美bbw| 久久午夜电影网 | 日韩久久影院 | 我和公激情中文字幕 | 国产suv精品一区二区 | 污视频网站在线看 | 亚色视频在线 | 亚洲日本不卡 | 亚洲ⅴ国产v天堂a无码二区 | 中国丰满熟妇xxxx性 | 国产1页| 欧美一二| 上原亚衣在线 | 美女扒开尿口让男人桶 | 一区二区不卡av | 蜜桃成人免费视频 | 麻豆免费下载 | 都市激情 亚洲 | 久久精品小视频 | 国产精品久久久免费观看 | 91午夜在线观看 | 夜色成人| 久久99婷婷| 国产天堂在线观看 | 久久久精品久久久久久 | 日韩裸体视频 | 天天操你| 亚洲av片一区二区三区 | 中文字幕在线看人 | 日本加勒比在线 | 四虎国产精品永久在线国在线 | 国产a一级片 | 成人性色生活片 | 亚洲成a人v欧美综合天堂麻豆 | 97国产精东麻豆人妻电影 | 5d肉蒲团之性战奶水 | 日韩天堂 | 性xxxx视频| 小俊大肉大捧一进一出好爽 | 午夜特级毛片 | 天天狠狠干 | 亚洲国产网 | 少妇一边呻吟一边说使劲视频 | 欧美日韩精品电影 | 亚洲精品视频网址 | 日日碰狠狠添天天爽 | 亚洲熟女综合色一区二区三区 | 日韩一级生活片 | 天堂网a| 美女被草视频 | 色成人综合网 | 成人美女在线观看 | 四虎4hu| 超碰97在线播放 | 另类小说一区二区 | 窝窝在线视频 | 自拍偷拍在线播放 | 一区二区三区在线视频免费观看 | 宿舍女女闺蜜调教羞辱 | 国产成人精品免高潮费视频 | 国产奶头好大揉着好爽视频 | 欧美爱爱网址 | 成年人视频在线观看免费 | 精品国产三级 | 精品人妻一区二区三区四区 | 精品久久影视 | 国产夜色视频 | 欧美一区二区三区爱爱 | 玖玖爱国产 | 粗大黑人巨茎大战欧美成人免费看 | 校园春色综合网 | 黄色免费大片 |