php優(yōu)化及高效提速問題的實(shí)現(xiàn)方法第1/2頁
更新時(shí)間:2008年10月03日 14:55:02 作者:
下面是phper在實(shí)際編寫中,發(fā)現(xiàn)的一些問題,其它我們的好多代碼,需要優(yōu)化,很多程序都是可以再提速的
一、 在函數(shù)中,傳遞數(shù)組時(shí)使用 return 比使用 global 要高效,比如:
function userloginfo($usertemp){
$detail=explode("|",$usertemp);
return $detail;
}
$login=userloginfo($userdb);
比
function userloginfo($usertemp){
global $detail;
$detail=explode("|",$usertemp);
}
userloginfo($userdb);
要高效
二、 (這個(gè)代碼用于得到程序目錄對(duì)應(yīng)的網(wǎng)址,推薦使用)
$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);
要高效
三、 在循環(huán)中判斷時(shí),數(shù)值判斷使用恒等要比等于高效
$a=2;$b=2;
比如
if($a==$b)$c=$a;
比
if($a===$b)$c=$a;
高效
四、 MySQL 查詢時(shí)盡量使用where in 少用 limit
limit查多記錄的前幾條, 速度很快, 但是查詢最面幾條就會(huì)慢
使用in .在查詢連續(xù)性記錄,非??? 非連續(xù)性記錄第一次運(yùn)行會(huì)稍微慢一點(diǎn),但是之后將比較快!
五、 NT服務(wù)器數(shù)據(jù)操作穩(wěn)定性不及unix/Linux
六、 輸出前使用盡量使用 ob_start();
可以加快輸出速度,適用NT或nuli/linux,對(duì)unlix類服務(wù)器 如果使用 ob_start('ob_gzhandler');輸出效率將更高
七、 判斷的時(shí)候盡量使用if($a==他的值)
否定的時(shí)候盡量使用if(empty($a)),因?yàn)檫@樣程序運(yùn)行更快速
八、 使用不等時(shí) != 與 <>效率相當(dāng)
九、 個(gè)人經(jīng)驗(yàn)得 使用 $a="11111111111111"; 的效率和 $a='11111111111111'; 相當(dāng).并不象書本說的相差很大
十、 使用規(guī)范的SQL語句, 會(huì)有利于MySQL的解析
十一、 使用
if($online){
$online1=$online;
setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
}
COOKIE將馬上生效
使用
if($online)
setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
COOKIE需要再刷新一次才能生效
十二、 使用
$handle=fopen($filename,wb);
flock($handle,LOCK_SH);
$filedata=fread($handle,filesize($filename));
fclose($handle);
比
file($filename);
無論在速度還是穩(wěn)定上都要優(yōu)秀
function userloginfo($usertemp){
$detail=explode("|",$usertemp);
return $detail;
}
$login=userloginfo($userdb);
比
function userloginfo($usertemp){
global $detail;
$detail=explode("|",$usertemp);
}
userloginfo($userdb);
要高效
二、 (這個(gè)代碼用于得到程序目錄對(duì)應(yīng)的網(wǎng)址,推薦使用)
$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);
要高效
三、 在循環(huán)中判斷時(shí),數(shù)值判斷使用恒等要比等于高效
$a=2;$b=2;
比如
if($a==$b)$c=$a;
比
if($a===$b)$c=$a;
高效
四、 MySQL 查詢時(shí)盡量使用where in 少用 limit
limit查多記錄的前幾條, 速度很快, 但是查詢最面幾條就會(huì)慢
使用in .在查詢連續(xù)性記錄,非??? 非連續(xù)性記錄第一次運(yùn)行會(huì)稍微慢一點(diǎn),但是之后將比較快!
五、 NT服務(wù)器數(shù)據(jù)操作穩(wěn)定性不及unix/Linux
六、 輸出前使用盡量使用 ob_start();
可以加快輸出速度,適用NT或nuli/linux,對(duì)unlix類服務(wù)器 如果使用 ob_start('ob_gzhandler');輸出效率將更高
七、 判斷的時(shí)候盡量使用if($a==他的值)
否定的時(shí)候盡量使用if(empty($a)),因?yàn)檫@樣程序運(yùn)行更快速
八、 使用不等時(shí) != 與 <>效率相當(dāng)
九、 個(gè)人經(jīng)驗(yàn)得 使用 $a="11111111111111"; 的效率和 $a='11111111111111'; 相當(dāng).并不象書本說的相差很大
十、 使用規(guī)范的SQL語句, 會(huì)有利于MySQL的解析
十一、 使用
if($online){
$online1=$online;
setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
}
COOKIE將馬上生效
使用
if($online)
setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
COOKIE需要再刷新一次才能生效
十二、 使用
$handle=fopen($filename,wb);
flock($handle,LOCK_SH);
$filedata=fread($handle,filesize($filename));
fclose($handle);
比
file($filename);
無論在速度還是穩(wěn)定上都要優(yōu)秀
相關(guān)文章
php計(jì)算函數(shù)執(zhí)行時(shí)間的方法
這篇文章主要介紹了php計(jì)算函數(shù)執(zhí)行時(shí)間的方法,以md5函數(shù)加密運(yùn)行時(shí)間為例分析了php計(jì)算函數(shù)運(yùn)行時(shí)間的技巧,需要的朋友可以參考下2015-03-03php使用redis的有序集合zset實(shí)現(xiàn)延遲隊(duì)列應(yīng)用示例
這篇文章主要介紹了php使用redis的有序集合zset實(shí)現(xiàn)延遲隊(duì)列,結(jié)合具體實(shí)例形式分析了PHP基于redis的有序集合zset實(shí)現(xiàn)延遲隊(duì)列的具體原理、應(yīng)用場景及相關(guān)操作技巧,需要的朋友可以參考下2020-02-02PHP實(shí)現(xiàn)克魯斯卡爾算法實(shí)例解析
這篇文章主要介紹了PHP實(shí)現(xiàn)克魯斯卡爾算法實(shí)例解析,是PHP程序設(shè)計(jì)中一個(gè)比較經(jīng)典的應(yīng)用,需要的朋友可以參考下2014-08-08php使用escapeshellarg時(shí)中文被過濾的解決方法
這篇文章主要介紹了php使用escapeshellarg時(shí)中文被過濾的解決方法,測試后發(fā)現(xiàn)問題的原因是shell和apache php-cgi的運(yùn)行環(huán)境不同引起的,需要的朋友可以參考下2016-07-07php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29
今天在百度知道上面有個(gè)朋友問php代碼解密的問題,看了代碼不是常見幾種比較感興趣,特意搜索了下,發(fā)現(xiàn)下面的方法,解決了,具體的看最后的說明。2011-01-01