日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > php教程 > PHP開(kāi)發(fā)經(jīng)驗(yàn):引用是個(gè)壞習(xí)慣

PHP開(kāi)發(fā)經(jīng)驗(yàn):引用是個(gè)壞習(xí)慣

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-04-14 17:09:24 閱讀次數(shù):3555次

在寫(xiě)PHP 程序的時(shí)候,很多人在傳遞參數(shù)的時(shí)候,喜歡用一個(gè)引用。特別是在一個(gè)數(shù)組非常的大的時(shí)候,更是喜歡加。

function binsearch(&$arr, $key, $value)
{
$low = 0;
$high = count($arr);

while ($low <= $high) {
$mid = floor($low + ($high - $low) / 2);
$item = $arr[$mid][$key];
if ($item == $value) {
return $mid;
} else if ($value > $item) {
$low = $mid + 1;
} else {
$high = $mid - 1;
}
}
return false;
}

在這里,$mid 采用了先減后加的方法計(jì)算,目的是為了防止整數(shù)的溢出。不是故意寫(xiě)復(fù)雜了。

我用下面的代碼進(jìn)行測(cè)試:

$data = array();
for ($i = 0; $i < 1000000; $i++)
{
$data[] = array("sq" => $i * 2);
}
var_dump(binsearch($data, "sq", 10000));

發(fā)現(xiàn),binsearch 的時(shí)候,總是要花個(gè) 0.2s左右。理論上來(lái)說(shuō),100萬(wàn)的數(shù)據(jù),最多也就是循環(huán)20次。怎么會(huì)這樣慢呢。

后來(lái)監(jiān)控了一下內(nèi)存,data 數(shù)組 占用了 230M 的內(nèi)存。而 binsearch 的時(shí)候,占用了60K 的內(nèi)存。但是,理論上來(lái)說(shuō),binsearch

不應(yīng)該占用如此多的內(nèi)存。因?yàn)椋矣X(jué)得,我已經(jīng)用引用了,根本就沒(méi)有對(duì)data 的結(jié)構(gòu)進(jìn)行修改。

我也是百思不得其解,后來(lái),我把引用參數(shù)去掉,居然 binsearch 只要 0.0002s ,看來(lái)是引用耗費(fèi)了大量的cpu 資源。

PHP 內(nèi)部遵循一個(gè)copy on write 的原則。實(shí)際上這個(gè)引用是多余的。

但是為什么,加了引用速度會(huì)變慢呢?今天重點(diǎn)就談?wù)勥@個(gè)問(wèn)題。明白道理后,大家一定知道怎么用引用了。

如果在binsearch 調(diào)用前,直接 $a = &$data,這個(gè)引用的速度會(huì)非常的快。看來(lái)肯定不是引用本身產(chǎn)生的問(wèn)題。

這個(gè)問(wèn)題,實(shí)際上涉及了zend 引擎如何管理PHP變量。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日本中文字幕免费 | 成人久久精品 | 欧美一a| 日韩中文字幕在线视频 | 国产在线观看一区 | 中文字幕在线观看一区二区三区 | 麻豆传媒视频 | 日韩区欧美区 | 日韩欧美国产精品 | 久久最新 | 蜜臂av日日欢夜夜爽一区 | 久久国产成人午夜av影院宅 | 国产精品综合网 | 一区二区精品视频 | 日韩国产一区二区三区 | 国产69精品久久久久777 | 久久精品成人一区二区三区蜜臀 | 国产亚洲视频在线观看 | 一级性| 日本一区二区三区四区 | 粉嫩欧美一区二区三区高清影视 | 在线观看av资源 | 国产一区二区观看 | 国产精品欧美精品 | 国产精品久久久久久久 | 免费国产一区二区 | 国产午夜在线 | www.国产91| 97精品国产97久久久久久免费 | 91久久精品国产 | 久久综合久 | 国产精品一区二区免费 | 亚洲视频免费在线 | 日韩一区二区免费视频 | 在线视频 中文字幕 | 国产精品美女久久久久高潮 | 99精品欧美一区二区三区综合在线 | 日韩欧美高清一区二区 | 91麻豆精品国产91久久久资源速度 | 亚洲天堂影院 | 欧美日韩二区三区 |