- 1、如何對PHP代碼進行優化以提高網站訪問速度
- 2、讓PHP網站跑的更快 如何優化PHP
- 3、如何對php代碼進行優化
- 4、PHP環境php代碼如何優化,sql怎麼優化?
一、不要將整個頁面放到一個table中雖然現在已經很少人使用table來布局,但我覺得還是有必要提一下,原來有些站長為了追求頁面的整齊劃一,將整個網站頁面放入到一個table中,使用表格來布局,如果這樣做顯然會拖慢整個網頁的加載速度。因為table中的內容必須要等到網頁中所有內容全部加載完才會顯示出來,所以如果其中一部分加載很慢或加載不了,勢必會造成網頁的加載變慢。最好是使用div+css的方式來布局頁面,如果要使用table也不要將所有網頁內容加入到一個table中。 一.記得幫頁面減肥我們瀏覽網頁實際上是將虛擬主機中的網頁內容下載到本地硬盤,再用瀏覽器解釋查看的。下載網頁的快慢在顯示速度上佔了很大比重,所以,網頁本身 所佔的空間越小,那麼瀏覽速度就會越快。這就要求在做網頁的時候遵循一切從簡的原則,如:不要使用太大的Flash動畫、圖片等資源。乾淨、簡潔的頁面會 給人一種思路明朗的感覺。 二、PHP等文件訪問通過.js調用。 如果在靜態頁面中需要嵌入動態數據,我們在進行PHP網站優化和其他方法優化時應該注意的是,如果你要在靜態的HTML頁面里嵌入動態的數據,而這些動態的數據是由PHP程序來提供的話,這樣的話,每次有一個人訪問你的網站,服務器就要執行並處理一次PHP文件,從數據庫抽取相應的數據,再輸出到網頁,如果同時有幾萬人訪問,無疑會是服務器不堪重負。 所以最好是將數據動態生成到.js文件中,然後再首頁通過 SCRIPT /SCRIPT 這樣的代碼來調用js文件。如此一來,動態數據的顯示就在客戶端的瀏覽器中進行,大大降低了服務器資源的消耗,網站速度自然會加快。 三.使用iframe嵌套廣告代碼。 如果你在網站上插入一些廣告,又不想因此拖慢網站速度,那使用iframe比較好。只要將這些廣告代碼整理到一個獨立的頁面中,使用iframe調用即可。代碼格式如下: 四、盡量使用靜態頁面和上面說的道理一樣,大家都知道,PHP等程序實現了網站的動態交互,如留言板等。但這類程序必須先由服務器執行處理,再生成靜態頁面,然後用戶才能看到。這就必須小高服務器資源。如果網站訪問人數多,服務器配置又不夠好,很容易就造成網站速度緩慢甚至無法訪問。所以如果沒有必要,請盡量使用靜態頁面。 五.網站統計代碼應獨立放置在網頁的最下方之所以放置最下方是因為如果網站統計代碼出現故障無妨加載時,會有幾十毫秒的延遲,這時如果你將統計代碼放置網頁前面,就會影響網站加載速度。導致頁面很長時間才能訪問。
php(做為現在的主流開發語言)是一種執行起來非常迅速的編程語言,但是比起僅僅優化代碼來說仍然值得優化php(做為現在的主流開發語言)本身。
本文我們將根據一些實效闡述為什麼優化php(做為現在的主流開發語言)本身要比優化代碼來的更貼切,以及為什麼需要理解根據php(做為現在的主流開發語言)在你的服務器上其他相關子系統的表現找出瓶頸並修復之。與此同時,我們也提到了如何優化您的php(做為現在的主流開發語言)代碼來讓他們擁有更快的執行速度。
獲得高性能
當我們談及好的性能,往往不僅僅是指您的php(做為現在的主流開發語言)代碼執行起來有多快。性能是一套在可量化評測和速度之間取出的平衡。僅僅依靠使用更少資源的代碼執行起來也許比在高速緩存中之行的代碼更慢,並且相同的一組(在高速緩衝中執行的)代碼可以在同時並發執行在一台Web服務器上。
在下面的例子中,A.php(做為現在的主流開發語言)算作一位儘可能跑得快的賽跑選手,而B.php(做為現在的主流開發語言)是一個幾乎可以以同一慢速永遠跑下去的馬拉松選手。輕負荷情況下,A.php(做為現在的主流開發語言)可以充分的快,但是當流量增加後,B.php(做為現在的主流開發語言)的性能表現將僅僅降低一點點而A.php(做為現在的主流開發語言)會垮掉。
讓我們來通過一個事實來驗證此說法更深遠的本質意義。假設我們需要讀取一個250K的文件並生成一個關於此文件的HTML概要。我們寫了兩個腳本來做同樣一件事:hare.php(做為現在的主流開發語言)將一次性讀取整個文件到內存中,然後一步執行到位;而tortoise.php(做為現在的主流開發語言)每次只讀取文件的一行,並且決不超過內容容量。結果Tortoise.php(做為現在的主流開發語言)因為多次讀寫需要更多的系統回應而慢得多。”
程序每執行一次,hare.php(做為現在的主流開發語言)需要0.04秒CPU執行時間和10Mb的內存,而tortoise.php(做為現在的主流開發語言)需要0.06秒CPU執行時間和5Mb的內存。服務器共有100Mb實際內存容量並且其CPU有99%是空閑的。我們同時假定執行這樣一個簡單事件不產生內存碎片。
當有10各程序並發執行時,hare.php(做為現在的主流開發語言)將發生內存溢出(10 ×10 = 100)。與此同時,tortoise.php(做為現在的主流開發語言)仍將有50Mb空餘內存可用!11個程序並發執行將使hare.php(做為現在的主流開發語言)徹底「潰敗」因為它開始需要使用虛擬內存——執行速度有可能降低到其常規速度的一半以下;而且現在每一個單獨程序進程需要0.08秒CPU執行時間。而此期間,tortoise.php(做為現在的主流開發語言)仍舊運行在其常規CPU執行時間——0.06秒!
以下表格中,執行得更快的php(做為現在的主流開發語言)腳本使用粗體區分開來:
——————————————————————————————
| 連接數 | 每執行1次HTTP請求所需CPU執行時間(秒)| 每執行10次HTTP請求所需CPU執行時間(秒)| 每執行11次HTTP請求所需CPU執行時間(秒)|
——————————————————————————————
| hare.php(做為現在的主流開發語言) | 0.04 | 0.04 | 0.88(內存溢出) |
——————————————————————————————
| tortoise.php(做為現在的主流開發語言) | 0.06 | 0.60 | 0.66 |
——————————————————————————————
如您在上例中看到的,獲得更好的性能不再僅僅是寫出執行起來更快的php(做為現在的主流開發語言)程序。高性能php(做為現在的主流開發語言)表現需要對底層硬件知識以及操作系統、軟件支持如Web服務器、數據庫等有一個良好認識和理解。
瓶頸
以上兩個例子讓我們看到了(性能)下降的瓶頸所在。當擁有無限大容量的內存時,hare.php(做為現在的主流開發語言)的確是始終比tortoise.php(做為現在的主流開發語言)快。但是,僅僅認為內存是php(做為現在的主流開發語言)整體性能的瓶頸所在顯得過於單純——實際上遠不止這些:
(a) 網絡
你的網絡有可能是最大的瓶頸所在。如果你有10M的帶寬——最多你只能獲得1M/秒的傳輸速度。如果假設每個php(做為現在的主流開發語言)頁為30k,那麼每秒僅僅只傳輸33頁就將使你的網絡帶寬達到飽和。更多導致瓶頸產生的因素包括頻繁訪問低速DNS,或者網絡設備僅能獲得十分有限的存儲。
(b) CPU
如果你監視一下你的CPU負荷情況,發送一個純靜態HTML頁面並不會增加CPU負擔——就像我們以上提到的,此時瓶頸在於網絡。當然啦,對於由php(做為現在的主流開發語言)生成的複雜動態頁面,你的CPU速度自然將成為限制因素之一。擁有包含多個CPU的服務器或者一個服務器陣列將減輕因CPU帶來的影響。
在執行某段代碼的之前獲得microtime時間,然後在結束的時候再獲取一次,兩次時間相差即可。你也可以使用zend studio 的調 試功能,它可以標出程序的執行時間。
1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,盡量用 file_get_contents,因為他的效率高得多!但是要注意file_get_contents在打開一個URL文件時候的PHP版本問題;
2.盡量的少進行文件操作,雖然PHP的文件操作效率也不低的;
3.優化Select SQL語句,在可能的情況下盡量少的進行Insert、Update操作(在update上,我被惡批過);
4.儘可能的使用PHP內部函數(但是我卻為了找個PHP裏面不存在的函數,浪費了本可以寫出一個自定義函數的時間,經驗問題啊!);
5.循環內部不要聲明變量,尤其是大變量:對象(這好像不只是PHP裏面要注意的問題吧?);
6.多維數組盡量不要循環嵌套賦值;
7.在可以用PHP內部字符串操作函數的情況下,不要用正則表達式;
8.foreach效率更高,盡量用foreach代替while和for循環;
9.用單引號替代雙引號引用字符串;
10.「用i =1代替i=i 1。符合c/c 的習慣,效率還高」;
11.對global變量,應該用完就unset()掉
原創文章,作者:FIXVD,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127110.html