溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

究竟是什么令微軟為Windows改進PHP

發(fā)布時間:2021-10-18 16:29:02 來源:億速云 閱讀:167 作者:柒染 欄目:編程語言

本篇文章為大家展示了究竟是什么令微軟為Windows改進PHP,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

微軟正在努力改進PHP在Windows上的運行速度,看來微軟對開源社區(qū)日漸支持。從另一方面看,51CTO從***一期編程語言排行榜上看到,PHP份額在逐步上升。

微軟開源社區(qū)主管Garrett Serack最近接受了媒體采訪,談論了微軟為實現這一目標所做的努力。

在Windows部署PHP應用性能欠佳

數年以來,PHP開發(fā)者或許可能會選擇在Windows上進行開發(fā)工作,但卻很少有人選擇將PHP程序部署在Windows上。Serack表示,出現這個結果不是沒有道理的。他表示,“當用戶在Windows上高興的運行一個PHP應用時,IIS可能會突然崩潰,而且沒人知道其原因何在?,F有PHP驅動器基于老協議,性能不高。而原因在于PHP社區(qū)缺少完善它所必需的信息?!?/p>

Serack認為,自從微軟開發(fā)者了解到使用PHP語言可以開發(fā)第三方應用,微軟就面臨著一個新問題。微軟逐漸開始意識到,開發(fā)者之所以不在Windows上部署PHP,原因是他們無法使用,并且微軟內部的一部分人開始準備做出改變。自此之后,Serack的大部分時間都花在這個工作上。

微軟改善Windows對PHP的支持

首先鼓勵微軟改善Windows對PHP支持的是SQL Server團隊,它希望讓現有開源應用可以更好的使用SQL Server驅動。也就是說,他們希望開發(fā)者在Windows上部署PHP應用時,使用SQL Server而不是MySQL,或者說至少是為了減少人們對自己的批評。2007年10月,***新改進版的Windows PHP驅動發(fā)布。但卻并未被開源社區(qū)所接受,于是SQL Server團隊又再次對其進行修改,以實現人們真正想要的功能。

究竟是什么令微軟為Windows改進PHP
圖 PHP運行在Windows Server 2008下:性能提高130%

非常自然,該團隊希望把修改后的代碼反饋給開源社區(qū)。據Serack表示,這意味著需要和微軟法律團隊進行多次溝通,才能獲準共享該代碼。這個法律過程花費了數月時間,因為對微軟來說,開源代碼依然是一件比較新鮮的事情。但并非微軟自己才面臨這種挑戰(zhàn),正如Serack所指出的那樣,“每一個向開源社區(qū)共享代碼的大公司都要經過類似的法律審批過程?!?/p>

不管怎樣,在去年的OSCON大會上,微軟向Adobe和其它項目提交了代碼。Serack表示,“大約去年這個時候,微軟開源軟件實驗室工作人員希望加速PHP在Windows上的開發(fā)?!碑敃rPierre Joye有空閑時間,因此微軟讓他與Serack共同實現以下目標:在Windows上完善PHP。

同時,Serack開始完善Windows PHP生成過程,重新為其編寫腳本。由于涉及到如此多其它項目,他不得不創(chuàng)建工具后又重建更多工具。他表示,“我希望包含所有DLL。”他創(chuàng)建了一個跟蹤工具,來跟蹤正在被創(chuàng)建的內容,并創(chuàng)建了全新的Visual Studio項目文件。Serack欣慰的表示,“再也不需要make文件和定制批處理腳本了?!?/p>

僅僅通過上述改進,核心解釋器基準測試的速度與PHP在Linux上運行速度的差距就縮小到1%以內。接下來,Serack創(chuàng)建了一個二進制工具,并通過它運行真實數據(也就是真正的PHP腳本),提供規(guī)范的數據給編譯器。配置文件導引優(yōu)化(Profile-Guided Optimization,PGO)是Visual Studio最酷功能之一,這一點已經被.NET開發(fā)者朋友所證實。這使其核心解釋器的速度快了18%左右,而且未修改一行代碼,只是修改了生成過程。

完善生成過程并不是一件沒有意義的任務。讓每一個模塊使用相同且正確的設置被編譯需要花點時間。Serack表示,“如果一個庫使用不同的優(yōu)化,它就不正常了?!?/p>

他表示,Joye還更換了一些老的程序庫。舉例來說,POSIX正則表達式函數庫已經有大約10年歷史。Serack表示,創(chuàng)建新版依賴庫對性能有較大影響,但同時對可靠性也具有較大影響。

現在并非說該任務已經完全完成。所謂開源項目,或開發(fā)項目,就如同寫長篇小說一樣,編程永遠不會完成,只有被放棄。Serack表示,“我們還正在進行一些努力。”舉例來說,與Linux相比,Windows的文件系統實現有不同之處。而且他承認,“在現實世界應用中,在性能方面我們還難言成功。但是至少我們已經擁有了這個真正穩(wěn)定的平臺?!?/p>

有人或許認為:“微軟?開源?承諾?你一定是在開玩笑?!盨erack本人最初也不輕信這種態(tài)度。實際上,微軟在進行Windows上的PHP改進時,故意保持非常低調的態(tài)度。Serack表示,“我們不想得罪別人,我們的目標是讓PHP很好的運行在Windows上。我們希望對PHP作出共享,而不是分裂它。那是我們連想也不會想的事情。我們通過共享代碼來參與到社區(qū)中,而非控制社區(qū)?!?/p>

Serack的目標就是簡單的讓PHP更好的運行在Windows上。他對開發(fā)者的反響感到激動,“太棒了!我已經擁有一個Windows服務器?,F在我不用再買一臺來運行我的PHP應用了?!?/p>

Serack十分歡迎來自PHP社區(qū)的幫助和建議;他希望人們能夠發(fā)表自己的觀點,談談如何在Windows上更好運行PHP,尤其是歡迎開發(fā)者提出能夠幫助跟蹤問題和優(yōu)化的意見。他表示,“如果有錯,讓我們一起修改?!?/p>

Serack表示,“我們已經讓人們做出選擇,現在他們可以在Windows上部署PHP,并能夠正常運行它們。”

上述內容就是究竟是什么令微軟為Windows改進PHP,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI