好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > php使用yield對(duì)性能提升的測(cè)試實(shí)例分析

php使用yield對(duì)性能提升的測(cè)試實(shí)例分析

熱門(mén)標(biāo)簽:江西手機(jī)自動(dòng)外呼防封系統(tǒng)是什么 怎么向銷(xiāo)售公司推銷(xiāo)外呼系統(tǒng) 廣東地市地圖標(biāo)注 仁和怎么申請(qǐng)400開(kāi)頭的電話(huà) 哪里辦理400電話(huà) 廣州防封卡外呼系統(tǒng)多少錢(qián)一個(gè)月 長(zhǎng)春人工外呼系統(tǒng)服務(wù)商 高德地圖標(biāo)注家 外呼系統(tǒng)撥打暫時(shí)無(wú)法接通

本文實(shí)例講述了php使用yield對(duì)性能提升的測(cè)試。分享給大家供大家參考,具體如下:

生成器提供了一種更容易的方法來(lái)實(shí)現(xiàn)簡(jiǎn)單的對(duì)象迭代,相比較定義類(lèi)實(shí)現(xiàn) Iterator 接口的方式,性能開(kāi)銷(xiāo)和復(fù)雜性大大降低。生成器允許你在 foreach 代碼塊中寫(xiě)代碼來(lái)迭代一組數(shù)據(jù)而不需要在內(nèi)存中創(chuàng)建一個(gè)數(shù)組, 那會(huì)使你的內(nèi)存達(dá)到上限,或者會(huì)占據(jù)可觀的處理時(shí)間。相反,你可以寫(xiě)一個(gè)生成器函數(shù),就像一個(gè)普通的自定義函數(shù)一樣, 和普通函數(shù)只返回一次不同的是, 生成器可以根據(jù)需要 yield 多次,以便生成需要迭代的值。

有兩個(gè)php文件,demo1.php與demo2.php,兩種不同的方式實(shí)現(xiàn)求0,到5000之間的數(shù)字的平方值并輸出,并打印腳本運(yùn)行的時(shí)間與使用的內(nèi)存大小。

demo1.php

?php
$startMemory = memory_get_usage(); 
$startTime = time();
function convert($size)
{
    $unit=array('b','kb','mb','gb','tb','pb');
      return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
function squares($start,$stop){
  $info = '';
  $square = 0;
  for($i=$start;$i$stop;$i++){
    $square = $i*$i;
    $info .= $i.' squared is '.$square.PHP_EOL;
  }
  return $info;
}
$info = squares(0,50000);
echo $info.PHP_EOL;
$endTime = time();
$useTime = $endTime-$startTime;
$endMemory = memory_get_usage(); 
$useMemory = $endMemory-$startMemory;
echo "總共占用的內(nèi)存大小為:".convert($useMemory).PHP_EOL;
echo "總共占用的時(shí)間為:".$useTime.'秒'.PHP_EOL;

運(yùn)行結(jié)果如下:

49993 squared is 2499300049
49994 squared is 2499400036
49995 squared is 2499500025
49996 squared is 2499600016
49997 squared is 2499700009
49998 squared is 2499800004
49999 squared is 2499900001

總共占用的內(nèi)存大小為:1.28 mb
總共占用的時(shí)間為:5秒

demo2.php

?php
$startMemory = memory_get_usage(); 
$startTime = time();
function convert($size)
{
  $unit=array('b','kb','mb','gb','tb','pb');
  return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
function squares($start,$stop){
  for($i = $start;$i$stop;$i++){
    yield $i=>$i*$i;
  }
}
foreach(squares(0,50000) as $n=>$square ){
  echo $n.' squared is '.$square.PHP_EOL;
}
$endTime = time();
$useTime = $endTime-$startTime;
$endMemory = memory_get_usage(); 
$useMemory = $endMemory-$startMemory;
echo "總共占用的內(nèi)存大小為:".convert($useMemory).PHP_EOL;
echo "總共占用的時(shí)間為:".$useTime.'秒'.PHP_EOL;

運(yùn)行demo2.php結(jié)果如下:

49988 squared is  2498800144
49989 squared is  2498900121
49990 squared is  2499000100
49991 squared is  2499100081
49992 squared is  2499200064
49993 squared is  2499300049
49994 squared is  2499400036
49995 squared is  2499500025
49996 squared is  2499600016
49997 squared is  2499700009
49998 squared is  2499800004
49999 squared is  2499900001
總共占用的內(nèi)存大小為:32 b
總共占用的時(shí)間為:5秒

總結(jié):對(duì)比發(fā)現(xiàn),可能由于腳本計(jì)算比較簡(jiǎn)單,運(yùn)行的時(shí)間沒(méi)啥太大變化。明顯發(fā)現(xiàn)使用yield后占用內(nèi)存的量要少很多。說(shuō)明使用yield還是對(duì)性能提升很有幫助的,像類(lèi)似的一次性拉取大數(shù)據(jù)量的數(shù)據(jù)都可以考慮使用yield實(shí)現(xiàn)(數(shù)據(jù)統(tǒng)計(jì)等).

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》及《PHP常用遍歷算法與技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • 詳解Yaf框架PHPUnit集成測(cè)試方法
  • PHP單元測(cè)試配置與使用方法詳解
  • PHPUnit + Laravel單元測(cè)試常用技能
  • PHP使用phpunit進(jìn)行單元測(cè)試示例
  • 高質(zhì)量PHP代碼的50個(gè)實(shí)用技巧必備(下)
  • 高質(zhì)量PHP代碼的50個(gè)實(shí)用技巧必備(上)
  • 很讓人受教的 提高php代碼質(zhì)量36計(jì)
  • 寫(xiě)出高質(zhì)量的PHP程序
  • 淺談如何提高PHP代碼質(zhì)量之端到端集成測(cè)試

標(biāo)簽:廈門(mén) 惠州 黔東 文山 梅河口 湘西 濮陽(yáng) 海北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php使用yield對(duì)性能提升的測(cè)試實(shí)例分析》,本文關(guān)鍵詞  php,使用,yield,對(duì),性能,提升,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php使用yield對(duì)性能提升的測(cè)試實(shí)例分析》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于php使用yield對(duì)性能提升的測(cè)試實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 校花在公交车上爽的腿软| 国产果冻传媒秘书的呻吟| 诛仙黄改版和陆雪琪的背景故事| 嫡女这般妩媚小说| 免费视频一级片| 欲望交叉点电影| 蜜桃精产品一区一区三区| 日韩久久中文字幕| 欧美裸妇| 宗保日杨家将| 高辣h乱乳动漫孕交| 国产精品白嫩嫩大学美女| 国产三?做暧免费观看| 77777影视在线观看免费视频| 黄色片一级黄色片| yy6080理AA级伦大片一级| 国产精品久久久久久一级毛片许晴 | 恩不要哦快点再快点恩恩| 潘金莲一级淫片aaaaaa电影| 欧美乱淫视频| 男欢女爱无遮挡A级视频 | 艳照xxxxx| 久久九九八八色偷偷| 意大利丁度巜做爰真实电影| 国产精品久久杨幂| 傲娇校霸开荤以后(高h)| 国产三级在线精品男人的天堂| 公在厨房扒开腿让我爽了在线观看| 无码GOGO大胆啪啪艺术直播| 女王坐脸vk| 黄篇视频| 欧美色吧视频在线观看| 男男GayGay互吃鳮吧网站| 裸体的视频有哪些| 51今日吃瓜热门大瓜入口| 亚洲AV秘?精品老牛影视| 向日葵视频app色版| 色啪啪a?v| 6080午夜影院| 国语自产偷成人精品视频| 十八人口工彩画大全|