程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP開發大型Web應用淺析(1)

PHP開發大型Web應用淺析(1)

編輯:關於PHP編程

這裡所說的“大型”應用不是說像Google、eBay、Yahoo這類大型網站的具體實施,我也沒有意圖勸說讀者放棄自己的概念和信仰,只是希望大家的系統可以運行得更快更流暢,可以承載更多的用戶在線,希望可以給PHP的初學者一點幫助。

關於PHP的執行效率,網上的專題文章很多,多以PHP、Java幾個陣營的爭論開始,以一個不確定的期待結束,很少看見一個明確的結論。確實,程序的執行效率是很難從比較中得出的。應用的方面不同,執行環境不同,效率的差別會差得比較大。而且效率也是需要權衡的,大家都知道匯編語言很底層,可以寫出非常高效的程序,但是我還很少,應該說是幾乎沒看過有人用匯編做Web開發,而且有能力用匯編寫出高效程序的人似乎都是值得大家仰視的,哈哈~我們沒有必要去討論PHP和匯編到底差多少,只要知道自己的PHP和別人的PHP差多少就可以了。

首先,先要明確這篇文章的前提:必須有一台或更多的可以被自己操縱的服務器,而不是虛擬主機空間。畢竟可以在虛擬主機上運行的通用系統已經有了很多經典的作品和成熟的框架,效率挖掘已經被前輩們做得非常出色了,它們的很多理念也被現在很多PHP用戶繼承和發展,越來越多的所謂“框架”也像滿天繁星一樣,我也不想再去寫那個,因為第一我自己的水平也不怎麼樣,寫不出什麼新鮮玩意來,寫出來也招人笑,第二是寫這個的文章太多了,說法也太多了,混亂是造成很多富有激情的未來天才程序員夭折的最大元凶。

在獨立服務器上執行的程序和在虛擬主機上可以運行的程序在效率優化方面有著很大差別。您當然可以把一套discuz不加修改地安裝在一台甚至一堆獨立服務器上,不過,它真的得到最大的性能優化嗎,您真的對得起這一堆服務器嗎?

獨立服務器指的是,使用者對這台機器有完全的控制權,包括安裝、刪除軟件,配置系統參數甚至修改源代碼。基於這樣一個開放的硬件平台,性能也不僅僅是體現在速度上,還包括安全性、穩定性等。和虛擬主機不同,用戶必須自己配置Web服務器參數,安裝和配置PHP、數據庫,以及安裝各種亂七八糟的東西(我喜歡這麼說),當然還要對它們負責。

首先提出幾個名詞:執行時間、模板、數據庫封裝、Cache、Buffer、Hash、守護進程、crontab。

執行時間,誰都知道,就是一個程序從執行開始到執行結束所用的時間。因為Web是瞬時的、無狀態的,所以執行時間是Web程序執行效率的一個指標,它並不適合衡量C/S程序或者後台守護的程序,因為它們很多都是持續運行的。頁面執行時間的一個典型例子就是Discuz論壇頁面最下方的時間顯式,通常Discuz都是幾毫秒到幾十毫秒,和所用的平台、數據量和當前系統壓力有關。

模板大家再熟悉不過,雖然有很多人只是在用,但是不知道為什麼在用。模板在傳統上來說是劃分邏輯層的一種途徑,在MVC上結構裡,它把表示層和下層分離,在實際使用中,它方便程序員和界面設計人員分工合作。然而,現在很多場合中,由於模板的不當使用,它非但沒有起到促進程序員和界面設計人員分工合作,反倒成為程序員和美工互相仇視的罪魁(我好像在以前的帖子裡這樣說過),很多人在抱怨他們不得不花很多時間在整理模板上。

數據庫封裝似乎和Java的關系更大,它對多種數據庫系統提供一個統一調用接口,通常是一些封裝好的類,這些類有時也完成一些比如SQL檢查、過濾等工作。PHPLIB裡的DB封裝、PEAR DB、Adodb等都很有名,用的人也很多。 1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved