最近發現程序反應時間有點慢,於是逐漸的排除,計算每段程序執行的時間,最後發現時間損耗都花在了鏈接數據庫上,數據庫鏈接也沒有什麼好的辦法,於是便放下它了。
次日,我測試一下數據庫的遠程鏈接,發現我用IP訪問數據庫的執行時間很短要遠遠小於我在本地用localhost連接數據庫。於是便有了下面一段測試:
set_time_limit(0) ;
$localtime = 0 ;
for($i=1;$i<=50;$i++){
$btime = get_microtime() ;
$conn = new mysqli("localhost","root","admin","petct_seo") ;
$conn->close() ;
$etime = get_microtime() ;
$localtime += $etime-$btime ;
}
$iptime =0 ;
for($i=1;$i<=50;$i++){
$btime = get_microtime() ;
$conn = new mysqli("127.0.0.1","root","admin","petct_seo") ;
$conn->close() ;
$etime = get_microtime() ;
$iptime += $etime-$btime ;
}
echo "localhost時間損耗為:".($localtime)/$i."<br />" ;
echo "127.0.0.1時間損耗為:".($iptime/$i)."<br />" ;
function get_microtime(){
list($micro,$time) = explode(" ",microtime());
return $time+$micro ;
}
輸出結果是:
localhost時間損耗為:0.98833055122226
127.0.0.1時間損耗為:0.0039590807522044
兩種連接方式的時間損耗差別很大,若有高手幫忙解答一下就好了。
本人猜測了一下,可能是DNS解析的原因了,是不是由於localhost的解析需要時間了。
說明一下我用的是window系統。
*