『壹』 php有哪些優化技巧
優化的點有很多,看具體使用環境:
1、 用單引號代替雙引號來包含字元串,這樣做會更快一些。因為 PHP 會在雙引號包圍的 字元串中搜尋變數,單引號則不會,注意:只有 echo 能這么做,它是一種可以把多個字元 串當作參數的「函數」(譯註:PHP 手冊中說 echo 是語言結構,不是真正的函數,故把函數 加上了雙引號)。
2、如果能將類的方法定義成 static,就盡量定義成 static,它的速度會提升將近 4 倍。
3、$row['id'] 的速度是$row[id]的 7 倍。
4、echo 比 print 快,並且使用 echo 的多重參數(譯註:指用逗號而不是句點)代替字元串 連接,比如 echo $str1,$str2。
5、在執行 for 循環之前確定最大循環數,不要每循環一次都計算最大值,最好運用 foreach 代替。
6、注銷那些不用的變數尤其是大數組,以便釋放內存。
7、盡量避免使用__get,__set,__autoload。
8、require_once()代價昂貴。
9、include 文件時盡量使用絕對路徑,因為它避免了 PHP 去 include_path 里查找文件的速 度,解析操作系統路徑所需的時間會更少。
10、如果你想知道腳本開始執行(譯註:即伺服器端收到客戶端請求)的時刻,使用 $_SERVER['REQUEST_TIME'] 要好於 time()
11、函數代替正則表達式完成相同功能。
12、str_replace 函數比 preg_replace 函數快,但 strtr 函數的效率是 str_replace 函數的四倍。
13、如果一個字元串替換函數,可接受數組或字元作為參數,並且參數長度不太長,那麼 可以考慮額外寫一段替換代碼, 使得每次傳遞參數是一個字元, 而不是只寫一行代碼接受數 組作為查詢和替換的參數。
14、使用選擇分支語句(譯註:即 switch case)好於使用多個 if,else if 語句。
15、用@屏蔽錯誤消息的做法非常低效,極其低效。
16、打開 apache 的 mod_deflate 模塊,可以提高網頁的瀏覽速度。
17、資料庫連接當使用完畢時應關掉,不要用長連接。
18、錯誤消息代價昂貴。
19、在方法中遞增局部變數,速度是最快的。幾乎與在函數中調用局部變數的速度相當。
20、遞增一個全局變數要比遞增一個局部變數慢 2 倍。
21、遞增一個對象屬性(如:$this->prop++)要比遞增一個局部變數慢 3 倍。
22、遞增一個未預定義的局部變數要比遞增一個預定義的局部變數慢 9 至 10 倍。
23、僅定義一個局部變數而沒在函數中調用它,同樣會減慢速度(其程度相當於遞增一個局 部變數)。PHP 大概會檢查看是否存在全局變數。
24、方法調用看來與類中定義的方法的數量無關,因為我(在測試方法之前和之後都)添加了 10 個方法,但性能上沒有變化。
25、派生類中的方法運行起來要快於在基類中定義的同樣的方法。
26、調用帶有一個參數的空函數,其花費的時間相當於執行 7 至 8 次的局部變數遞增操作。 類似的方法調用所花費的時間接近於 15 次的局部變數遞增操作。
27、Apache 解析一個 PHP 腳本的時間要比解析一個靜態 HTML 頁面慢 2 至 10 倍。盡量 多用靜態 HTML 頁面,少用腳本。
28、除非腳本可以緩存,否則每次調用時都會重新編譯一次。引入一套 PHP 緩存機制通常 可以提升 25%至 100%的性能,以免除編譯開銷。
29、盡量做緩存,可使用 memcached。memcached 是一款高性能的內存對象緩存系統, 可用來加速動態 Web 應用程序,減輕資料庫負載。對運算碼 (OP code)的緩存很有用,使 得腳本不必為每個請求做重新編譯。
30、 當操作字元串並需要檢驗其長度是否滿足某種要求時, 你想當然地會使用 strlen()函數。 此函數執行起來相當快,因為它不做任何計算,只返回在 zval 結構(C 的內置數據結構,用 於存儲 PHP 變數)中存儲的已知字元串長度。但是,由於 strlen()是函數,多多少少會有些 慢,因為函數調用會經過諸多步驟,如字母小寫化(譯註:指函數名小寫化,PHP 不區分函 數名大小寫)、哈希查找,會跟隨被調用的函數一起執行。在某些情況下,你可以使用 isset() 技巧加速執行你的代碼。 (舉例如下) if (strlen($foo) < 5) { echo 「Foo is too short」$$ } (與下面的技巧做比較) if (!isset($foo{5})) { echo 「Foo is too short」$$ } 調用 isset()恰巧比 strlen()快,因為與後者不同的是,isset()作為一種語言結構,意味著它 的執行不需要函數查找和字母小寫化。 也就是說, 實際上在檢驗字元串長度的頂層代碼中你 沒有花太多開銷。
31、當執行變數$i 的遞增或遞減時,$i++會比++$i 慢一些。這種差異是 PHP 特有的,並不 適用於其他語言, 所以請不要修改你的 C 或 Java 代碼並指望它們能立即變快, 沒用的。 ++$i 更快是因為它只需要 3 條指令(opcodes),$i++則需要 4 條指令。後置遞增實際上會產生一 個臨時變數,這個臨時變數隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的 一種,正如 Zend 的 PHP 優化器所作的那樣。牢記這個優化處理不失為一個好主意,因為 並不是所有的指令優化器都會做同樣的優化處理, 並且存在大量沒有裝配指令優化器的互聯 網服務提供商(ISPs)和伺服器。
32、並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很 多內存。
33、並非要用類實現所有的數據結構,數組也很有用。
34、不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼?
35、當你需要時,你總能把代碼分解成方法。
36、盡量採用大量的 PHP 內置函數。
37、如果在代碼中存在大量耗時的函數,你可以考慮用 C 擴展的方式實現它們。
38、 評估檢驗(profile)你的代碼。 檢驗器會告訴你, 代碼的哪些部分消耗了多少時間。 Xdebug 調試器包含了檢驗程序,評估檢驗總體上可以顯示出代碼的瓶頸。
39、mod_zip 可作為 Apache 模塊,用來即時壓縮你的數據,並可讓數據傳輸量降低 80%。
40、在可以用 file_get_contents 替代 file、fopen、feof、fgets 等系列方法的情況下,盡量 用 file_get_contents,因為他的效率高得多!但是要注意 file_get_contents 在打開一個 URL 文件時候的 PHP 版本問題;
41、盡量的少進行文件操作,雖然 PHP 的文件操作效率也不低的;
42、優化 Select SQL 語句,在可能的情況下盡量少的進行 Insert、Update 操作(在 update 上,我被惡批過);
43、盡可能的使用 PHP 內部函數(但是我卻為了找個 PHP 裡面不存在的函數,浪費了本可 以寫出一個自定義函數的時間,經驗問題啊!);
44、 循環內部不要聲明變數, 尤其是大變數: 對象(這好像不只是 PHP 裡面要注意的問題吧?);
45、多維數組盡量不要循環嵌套賦值;
46、在可以用 PHP 內部字元串操作函數的情況下,不要用正則表達式;
47、foreach 效率更高,盡量用 foreach 代替 while 和 for 循環;
48、用單引號替代雙引號引用字元串;
49、「用 i+=1 代替 i=i+1。符合 c/c++的習慣,效率還高」
50、對 global 變數,應該用完就 unset()掉;
『貳』 如何徹底優化php程序降低CPU佔用
1、優化數據和邏輯和查詢。
2、改用php7,並且用嚴格模式編寫。
3、優化伺服器實現動靜分離比如把apache和iis換成nginx或nginx+apache。
『叄』 php代碼優化及php相關問題總結
1,在函數中,傳遞數組時
使用
return
比使用
global
要高效
比如
function
userloginfo($usertemp){
$detail=explode("|",$usertemp);
return
$detail;
}
$login=userloginfo($userdb);
比
function
userloginfo($usertemp){
global
$detail;
$detail=explode("|",$usertemp);
}
userloginfo($userdb);
要高效
2,(這個代碼用於得到程序目錄對應的網址,推薦使用)
$urlarray=explode('/',$HTTP_SERVER_VARS['REQUEST_URI']);
$urlcount=count($urlarray);unset($urlarray[$urlcount-1]);
$ofstarurl='http://'.$HTTP_SERVER_VARS['HTTP_HOST'].implode('/',$urlarray);
這段代碼比
$pre_urlarray=explode('/',$HTTP_SERVER_VARS['HTTP_REFERER']);
$pre_url=array_pop($pre_urlarray);
要高效
3,在循環中判斷時,數值判斷使用恆等要比等於高效
$a=2;$b=2;
比如
if($a==$b)$c=$a;
比
if($a===$b)$c=$a;
高效
4,mysql
查詢時盡量使用where
in
少用
limit
limit查多記錄的前幾條,
速度很快,
但是查詢最面幾條就會慢
使用in
.在查詢連續性記錄,非常快,
非連續性記錄第一次運行會稍微慢一點,但是之後將比較快!
5,NT伺服器數據操作穩定性不及unix/linux
6,輸出前使用盡量使用
ob_start();
可以加快輸出速度,適用NT或nuli/linux,對unlix類伺服器
如果使用
ob_start('ob_gzhandler');輸出效率將更高
7,判斷的時候盡量使用if($a==他的值)
否定的時候盡量使用if(empty($a)),因為這樣程序運行更快速
8,使用不等時
!=
與
<>
效率相當
9,個人經驗得
使用
$a="11111111111111";
的效率和
$a='11111111111111';
相當.並不象書本說的相差很大
10,使用規范的SQL語句,
會有利於MySQL的解析
11,使用
if($online){
$online1=$online;
setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
}
COOKIE將馬上生效
使用
if($online)
setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
COOKIE需要再刷新一次才能生效
12,使用
$handle=fopen($filename,wb);
flock($handle,LOCK_SH);
$filedata=fread($handle,filesize($filename));
fclose($handle);
比
file($filename);
無論在速度還是穩定上都要優秀
13,截斷字元串優化函數(可避免?字元出現)
function
substrs($content,$length)
{
if(strlen($content)>$length){
$num=0;
for($i=0;$i<$length-3;$i++)
{
if(ord($content[$i])>127)$num++;
}
$num%2==1
?
$content=substr($content,0,$length-4):$content=substr($content,0,$length-3);
$content.='
...';
}
return
$content;
}
比如$newarray[1]=substrs($newarray[1],25);
14,程序中屏蔽大小寫
for
($asc=65;$asc<=90;$asc++)
{
//strtolower()
此函數在一些伺服器會產生亂碼!
if
(strrpos($regname,chr($asc))!==false)
{
$error="為了避免用戶名混亂,用戶名中禁止使用大寫字母,請使用小寫字母";
$reg_check=0;
}
}
15,不使用
file();和不使用
fget();(不穩定或速度慢)
取一數組函數
function
openfile($filename,$method="rb")
{
$handle=@fopen($filename,$method);
@flock($handle,LOCK_SH);
@$filedata=fread($handle,filesize($filename));
@fclose($handle);
$filedata=str_replace("\n","\n<ofstar:>",$filedata);
$filedb=explode("<ofstar:>",$filedata);
//array_pop($filedb);
$count=count($filedb);
if($filedb[$count-1]==''){unset($filedb[$count-1]);}
return
$filedb;
}
//這個函數雖然代碼比較多,不過在速度和穩定性上優勢很大!
先寫到這
以上完全個人的一點小結,,不過正確性都經過反復測試,如果有朋友質疑,請先測試,再討論,謝謝!
『肆』 讓PHP網站跑的更快 如何優化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帶來的影響。
『伍』 如何優化PHP性能
如果一個方法能被靜態,那就聲明它為靜態的,速度可提高1/4,甚至我測試的時候,這個提高了近三倍。
當然了,這個測試方法需要在十萬級以上次執行,效果才明顯。
其實靜態方法和非靜態方法的效率主要區別在內存:靜態方法在程序開始時生成內存,實例方法在程序運行中生成內存,所以靜態方法可以直接調用,實例方法要先成生實例,通過實例調用方法,靜態速度很快,但是多了會占內存。
任何語言都是對內存和磁碟的操作,至於是否面向對象,只是軟體層的問題,底層都是一樣的,只是實現方法不同。靜態內存是連續的,因為是在程序開始時就生成了,而實例申請的是離散的空間,所以當然沒有靜態方法快。
靜態方法始終調用同一塊內存,其缺點就是不能自動進行銷毀,而是實例化可以銷毀。
『陸』 如何對php代碼進行優化
在執行某段代碼的之前獲得microtime時間,然後在結束的時候再獲取一次,兩次時間相差即可。你也可以使用zend studio 的調 試功能,它可以標出程序的執行時間。
『柒』 上海網站優化:PHP程序網站怎麼做優化
一、PHP網站關鍵詞優化
根據搜索引擎的工作原理,我們知道用戶和搜索引擎都是根據關鍵詞對目標網站進行搜索分析。通過分析這些的關鍵詞和搜索流量,我們發現在網站發展前期關鍵詞是影響網站被搜索引擎收錄的一個核心因素,關鍵詞給網站帶來了大量用戶的同時也帶來了大量的流量,其流量比例占網站總流量的絕大部分。由此可見,關鍵詞的優化對於網站的流量至關重要。而關鍵詞的確定必須是和網站內容高度相關的,一般網站需要在以下位置設置關鍵詞:
(1)關鍵詞需要出現在標簽當中,也就是標題當中需要包含關鍵詞,而且還需要保證不同的頁面是不一樣的;
(2)關鍵詞應放在網站的標簽內的keywords和description裡面,並且一般只可出現一次;
(3)網站logo圖片的Alt屬性中可以設置於網站主題的關鍵詞,其他圖片的Alt應放著與圖片相符合的ALT屬性,否則會被搜索引擎認為在作弊;
(4)網站的目錄名和文件名可以設置為關鍵詞,會更好的被搜索引擎抓取;
(5)網頁內容的中一般放置一篇文章的標題或者內容提要,這里需要放置關鍵詞,但是整個頁面的關鍵詞不易設置過度,一般設置在 標簽中,但需與文章內容相關,否則會認為在作弊。
二、PHP網站地圖優化
網站地圖優化又叫網站導航優化俗稱sitemap。首先網站地圖為網站訪問者指明了訪問網站的方向和路徑,清晰明了的告訴網站訪問者網站的布局和內容,給網站訪問者友好的體驗。用戶的體驗感覺不錯,那麼他下次訪問網站的幾率就會大大提高;其次搜索引擎蜘蛛也非常喜歡網站地圖。因此做好網站地圖SEO,對於網站非常重要。
(1)針對PHP網站,一般採用XML格式的網站地圖。網站地圖保存在根目錄下的一個XML文件里,大家在很多網站的底部都會發現有這么一個文件。例如:,它是網站上鏈接的列表。製作一個簡潔明了高效的網站地圖,可以為搜索引擎快速瀏覽整個網站的窗口,並且收錄網站的全部內容。
(2)一般在網站的footer下添加一個關鍵詞,並指向相應的內容頁面。
三、PHP網站 URL地址優化
URL地址優化包括URL地址靜態化(又叫偽靜態)和URL地址轉向兩個方面。根據搜索引擎的搜索原理,靜態頁面更有利於搜索引擎抓取收錄。現在大多數網站都是動態的頁面,比如本文所討論的PHP網站就為動態鏈接的頁面。那麼我們就要採取措施把PHP動態生成的頁面轉化為靜態頁面。
四、 url地址靜態化
(1))把網頁上帶鏈接的地方,都換上新的靜態化鏈接。搜索引擎和瀏覽器將通過該鏈接來發生請求。
(2)Apache伺服器中在httpd.conf或.htaccess使用」/dir/([^./]*)\.html」來實現新的重寫規則,告訴Apache服務執行這個重寫規則之後的操作。通過這樣一個重寫規則使得PHP生成的動態頁面轉化為靜態頁面展現給搜索引擎。當搜索引擎蜘蛛爬行到這里頁面的時候,就會記錄下這個新的頁面,從而達到URL地址優化的目的。在執行這樣的操作後,要保留原鏈接只需在httpd.conf中使用Alias指令(僅適用於apache伺服器)。
『捌』 php做優化包括哪些內容
1:單引號代替雙引號,雙引號會去找變數。
2:方法定義為static,性能提升4倍。
3:$arr['id']的性能是$arr[id]的7倍。
4:echo性能快,盡量使用echo $a,$b,$c而非echo $a.$b.$c。
5:循環之前確定循環次數,盡量用foreach。
6:注銷不使用的變數,節省內存。
7:盡量不使用魔法函數:__get、__set等。
8:require_once()會檢查是否載入,消耗內存。
9:include文件時使用絕對路徑,省去查找的時間。
10:腳本開始執行時間$_SERVER[『REQUEST_TIME』]要好於time()。
11:正則效率低,用函數代替。
12:str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。
13:接收客串的效率比接收數組的效率高。
14:switch case好於多個if else。
15:用@屏蔽錯誤消息的方法很低效。
16:打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。
17:資料庫連接當使用完畢時應關掉,不要用長連接。
18:錯誤消息代價昂貴。
19:在方法中遞增局部變數,速度是最快的。幾乎與在函數中調用局部變數的速度相當。
20:遞增一個全局變數要比遞增一個局部變數慢2倍。
21:遞增一個對象屬性(如:$this->prop++)要比遞增一個局部變數慢3倍。
22:遞增一個未預定義的局部變數要比遞增一個預定義的局部變數慢9至10倍。
23:僅定義一個局部變數而沒在函數中調用它,同樣會減慢速度(其程度相當於遞增一個局部變數)。PHP大概會檢查看是否存在全局變數。
24:方法調用看來與類中定義的方法的數量無關,因為我(在測試方法之前和之後都)添加了10個方法,但性能上沒有變化。
25:派生類中的方法運行起來要快於在基類中定義的同樣的方法。
26:調用帶有一個參數的空函數,其花費的時間相當於執行7至8次的局部變數遞增操作。類似的方法調用所花費的時間接近於15次的局部變數遞增操作。
27:Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。盡量多用靜態HTML頁面,少用腳本。
28:盡量做緩存,可使用memcached。memcached是一款高性能的內存對象緩存系統,可用來加速動態Web應用程序,減輕資料庫負載。對運算碼 (OP code)的緩存很有用,使得腳本不必為每個請求做重新編譯。
29:當操作字元串並需要檢驗其長度是否滿足某種要求時,你想當然地會使用strlen()函數。此函數執行起來相當快,因為它不做任何計算,只返回在zval 結構(C的內置數據結構,用於存儲PHP變數)中存儲的已知字元串長度。但是,由於strlen()是函數,多多少少會有些慢,因為函數調用會經過諸多步驟,如字母小寫化(譯註:指函數名小寫化,PHP不區分函數名大小寫)、哈希查找,會跟隨被調用的函數一起執行。在某些情況下,你可以使用isset() 技巧加速執行你的代碼。
30:當執行變數$i的遞增或遞減時,$i++會比++$i慢一些。這種差異是PHP特有的,並不適用於其他語言,所以請不要修改你的C或Java代碼並指望它們能立即變快,沒用的。++$i更快是因為它只需要3條指令(opcodes),$i++則需要4條指令。後置遞增實際上會產生一個臨時變數,這個臨時變數隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種,正如Zend的PHP優化器所作的那樣。牢記這個優化處理不失為一個好主意,因為並不是所有的指令優化器都會做同樣的優化處理,並且存在大量沒有裝配指令優化器的互聯網服務提供商(ISPs)和伺服器。
31:並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很多內存。
32:盡量採用大量的PHP內置函數。
33:如果在代碼中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們。
34:mod_zip可作為Apache模塊,用來即時壓縮你的數據,並可讓數據傳輸量降低80%。
35:在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,盡量用 file_get_contents,因為他的效率高得多!但是要注意file_get_contents在打開一個URL文件時候的PHP版本問題。
36:盡量的少進行文件操作,雖然PHP的文件操作效率也不低的。
37:優化Select SQL語句,在可能的情況下盡量少的進行Insert、Update操作(在update上,我被惡批過)。
38:循環內部不要聲明變數,尤其是大變數:對象。
39:多維數組盡量不要循環嵌套賦值。
40:在可以用PHP內部字元串操作函數的情況下,不要用正則表達式。
41:foreach效率更高,盡量用foreach代替while和for循環。
42:用i+=1代替i=i+1。符合c/c++的習慣,效率還高。
43:對global變數,應該用完就unset()掉。
『玖』 PHP程序網站怎麼做優化
PHP和其他程序做優化其實是一樣的。首先是代碼簡化
其他的就是根據網站去制定相應的關鍵詞庫,讓文案進行寫稿,做好文章的站內關鍵詞指向。
站外就是需要在不同的地方發外鏈,進行推廣
『拾』 PHP程序優化有什麼好用的技巧嗎
1、用單引號代替雙引號來包含字元串,這樣做會更快一些。因為PHP會在雙引號包圍的字元串中搜尋變數, 單引號則不會,注意:只有echo能這么做,它是一種可以把多個字元串當作參數的」函數」(譯註:PHP手冊中說echo是語言結構,不是真正的函數,故 把函數加上了雙引號)。
2、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。
3、$row[『id』] 的速度是$row[id]的7倍。
4、echo 比 print 快,並且使用echo的多重參數(譯註:指用逗號而不是句點)代替字元串連接,比如echo $str1,$str2。
5、在執行for循環之前確定最大循環數,不要每循環一次都計算最大值,最好運用foreach代替。
6、注銷那些不用的變數尤其是大數組,以便釋放內存。
7、盡量避免使用__get,__set,__autoload。
8、require_once()代價昂貴。
9、include文件時盡量使用絕對路徑,因為它避免了PHP去include_path里查找文件的速度,解析操作系統路徑所需的時間會更少。
10、如果你想知道腳本開始執行(譯註:即伺服器端收到客戶端請求)的時刻,使用$_SERVER[『REQUEST_TIME』]要好於time()。