PHP內(nèi)置的Math函數(shù)效率測(cè)試
本文實(shí)例分析了PHP內(nèi)置的Math函數(shù)效率問題。分享給大家供大家參考。具體分析如下:
如題所示,對(duì)于沒有做過大規(guī)模運(yùn)算的朋友來說,可能還不知道,PHP的Math函數(shù)運(yùn)算原來是如此之慢的,大家還是麻煩點(diǎn),手寫多幾句,代碼如下:
for ($i=0; $i < 200000; $i++){
$s = 0;
for ($j=0; $j < 3; $j++){
$s += ($j+$i+1) * ($j+$i+1);
}
}
echo microtime(TRUE) – $start; // output: 0.33167719841003
再對(duì)比下用Math函數(shù)的代碼和結(jié)果,代碼如下:
for ($i=0; $i < 200000; $i++){
$s = 0;
for ($j=0; $j < 3; $j++){
$s += pow($j+$i+1, 2);
}
}
echo microtime(TRUE) – $start; // output: 0.87528896331787
看到木有,效率提升100%?。∫郧斑€一直都認(rèn)為是PHP內(nèi)置的Math快,真是不測(cè)不知道,像取絕對(duì)值abs,最大值max,最小值min 等效率都不如原生的 if判斷來得快.
總的來說,php運(yùn)算的確是很慢,真心不適合做大規(guī)模的算法運(yùn)算.希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
memcached 和 mysql 主從環(huán)境下php開發(fā)代碼詳解
一般的大站通常做法是 拿著內(nèi)存當(dāng)數(shù)據(jù)庫來用(memcached). 和很好的讀 寫分離 備份機(jī)制 (mysql 的主從) 在這樣的環(huán)境下我們?cè)趺催M(jìn)行PHP開發(fā)呢。2010-05-05php使用CURL不依賴COOKIEJAR獲取COOKIE的方法
這篇文章主要介紹了php使用CURL不依賴COOKIEJAR獲取COOKIE的方法,實(shí)例分析了curl操作cookie的技巧,需要的朋友可以參考下2015-06-06簡(jiǎn)單的方法讓你的后臺(tái)登錄更加安全(php中加session驗(yàn)證)
通過特定文件為后臺(tái)入口注冊(cè)session,否則失敗退出。即直接使用原后臺(tái)地址將無法登錄后臺(tái)。這樣一來,入口文件名的多樣性、可變更性將為你的后臺(tái)登錄提供更加安全的環(huán)境2012-08-08如何在thinkphp中使用windows計(jì)劃任務(wù)定時(shí)執(zhí)行php文件
這篇文章主要介紹了如何在thinkphp中使用windows計(jì)劃任務(wù)定時(shí)執(zhí)行php文件,對(duì)定時(shí)執(zhí)行感興趣的同學(xué),可以參考下2021-04-04Lumen timezone 時(shí)區(qū)設(shè)置方法(慢了8個(gè)小時(shí))
今天用 Lumen 框架寫代碼時(shí), 也是初次體驗(yàn) Lumen, 遇到了一個(gè)問題, 從數(shù)據(jù)庫里查出的時(shí)間比數(shù)據(jù)庫里保存的 TIMESTAMP 時(shí)間慢了8個(gè)小時(shí), 很明顯這是一個(gè)時(shí)區(qū)設(shè)置的問題, 本以為可以在1分鐘內(nèi)解決的, 但是我錯(cuò)了2018-01-01PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)字段進(jìn)行水平合并,橫向合并案例分析
這篇文章主要介紹了PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)字段進(jìn)行水平合并,橫向合并,結(jié)合具體案例形式分析了php數(shù)組遍歷、合并等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10