1.http請求與響應的簡單流程javascript
上圖簡單的描述了一個http請求與響應的過程,首先是用戶請求過程,這是該生命週期的第一部分,用戶發起請求,通過路由器與ips網關和dns服務器(域名服務器),經過web服務器嚮應用程序發起請求,其次是服務器響應過程,這是該生命週期的第二部分,一旦請求web服務器以後web服務器便經過獲取而且格式化數據來準備響應,而後web服務器將數據打包成多個數據包並以相反的順序沿着用戶請求相同的路徑發送給用戶,若是數據量足夠大,那麼就將數據打包成多個包併發送。php
2.ab壓力測試工具css
apache benchmark(ab)工具是最著名的壓力測試工具,它是apache中默認安裝的一部分(在windows web環境中也可使用),它能夠經過模擬對特定的url的任意請求數量來對web服務器進行附載測試,ab工具可以提供以下信息:html
(1)傳輸的總數據大小 -以字節爲單位前端
(2)web服務器在模擬流量下每秒能夠支持的請求總數java
(3)完成一個請求所花費的最長時間-.毫秒爲單位web
(4)完成一個請求所花費的最短期-以毫秒爲單位apache
具體操做請查看相應資料 http://www.cnblogs.com/mydomain/p/3166191.htmlwindows
除ab壓力測試工具外還有一些壓力測試工具 例如:siege,webbench 在這裏就很少說了數組
3.提升客戶端下載和呈現能力
前端是php應用程序的第一層,具體如圖2-1
這裏將從web瀏覽器的角度分析web服務器的響應,具體來講有多種工具能幫助咱們分析網站的響應(firebug yslow 和page speed),它們能提供如下信息
(1)web服務器發送的響應細節時間
(2)分析javascript中前端邏輯
(3)瀏覽器將讀取的資源的逐項列表
(4)瀏覽器獲取和接收資源所花費的時間
(5)對如何優化響應的建議
第二個工具集(YUI Compreesor ,Closure Compiler和Smush.it)將幫助咱們優化響應,簡言之,咱們能夠藉助這些工具來壓縮javascript,css和網頁所需的圖像。對於網頁的優化對於用戶瀏覽十分重要,例如某個用戶加載3M的網頁,響應中含有30個未緩存的大圖片,臃腫的css和無數的javascript文件,而這些東西網頁根本就不須要,無論你在php方面作了多少優化,用戶依然要完成3M的響應才能夠看到這個頁面,若是標準的dsl調制解調器(1m/s),那麼下載一個3m的須要一分鐘,一項調查代表,用戶等待頁面加載的平均時間最多爲4s,因此,在一分鐘的狀況下,56秒是難以忍受的,這可能會讓你失去這個用戶。
具體的firebug,yslow,page speed的使用請查看相關資料。
4.php代碼優化
php已經目前已經完成了許多性能調整加強,所以舊版本也將得益於這些代碼實踐
(1)使用require與require_once的對比,經對比,require性能高於require_once
(2)提早計算for循環的長度
(3)比較for,foreach,while 訪問數組元素時的性能 foreach高於while高於for
(4)文件訪問問題,php有四種從文件中讀取數據的方法,fread(),file_get_contents(),file()和readfile。其中fread(),file_get_contents(),readfile()是以字符串形式輸出,只有file_get_contents()將文件緩存到內存中,以便更快的進行讀寫操做,這種方式叫作內存映射。file_get_contents()在讀取系統小文件時,性能獲得很大提高。說明,讀取小文件(3.6k)的時候fread()高於file_get_contents(),讀取大文件的時候(2.3M)時file_get_contents()高於fread()。詳情見下表
5.opcode緩存
如今爲了加快php的運行速度,咱們要作的是當php被請求時刪除全部沒必要要的進程,咱們能夠經過刪除php生命週期無需常規執行的進程來優化程序,從而使用戶的請求能夠被更快的響應。添加opcode緩存能有效的刪除php生命週期中無需常規執行的進程從而來進行優化程序。下圖說明php生命週期
這是一個完整的php生命週期,php的生命週期很是短暫,可是每次請求php腳本時,php必須執行這五個步驟,如圖所示。zend引擎必須從文件系統中讀取相應文件,掃描其表達式和詞典,解析文件,建立成計算機所可以執行的編碼(opcode),最後執行opcode。對於腳本的初次請求這個時必要的,但後續無需此操做,若是實現opcode緩存,咱們就能夠縮短三個步驟來縮短php的生命週期,從而提升應用程序的性能。以下圖
如今只說說三種有效的opcode緩存技術,alternative php cache(APC),Xcache,eAccelerator(eA),其中一些緩存技術不只僅是opcode。
具體使用請查看相關資料