今天的我,曾經是一個ASP.NET信徒,後來經過大流量網站的應用,經驗告訴我,微軟面向的人群是中低端大部人群,因為他的一系列產品程序臃腫,但智能,比如SQLServer、iis、還有哪些捆綁的服務,就ASP.NET的運行庫,頁面要執行太多的初始化操作,使得頁面他必須慢和占用太多內存。
今天的我計劃考察下PHP的性能底線和運行機理,希望有一個好的結果!
PHP底核是用的Zend Engine組件運行的Opcode中間執行的,就像.NET的Framework runtime。但有很大不同,Zend Engine是一個虛擬機,他對Opcode是解釋執行,也就是說,讀一句執行一句,類似ASP。但是因為OpCode是二進制,語法標准和字節化,使讀取性能非常快,比ASP要快的多。而.NET據說是轉成機算機語言,然後直接調用運行的。按說.net更會快,但事實上,.NET加上哪些臃腫的類庫,不未知的編譯過程,速度目前牙根跟不上php的解釋執行。
從企業需求角度去想,要太高的性能也不是需求的第一要求,還要程序簡單,使開發成本降低,再有性能可以提供需求的需要才行。PHP對於大型網站的解決方案可以滿足他們的這些需要,因為他做到了簡單,精巧,性能雖然不說最好,他這些性能耗費,一般商家都是可以支持的起的,最主要,他耗費的僅僅是一點點,可以忽略不技,而asp.net就不一樣了,再大還可以使用集群方案解決。
PHP支持FPM進程管理模式,這使得在對應大流量,大內存需要時,還是有很好的處理性能的。
支持fastcgi,這可以更好的兼容高性各種服務器的接口,甚至linux運行效果也非常好!
總體評價,PHP還是比較合適於門戶網站,大流量站的應用的。