php yield测试
2016-08-01 PHP 735
header(\'Content-Type: text/html; charset=utf-8;\');
//初始化 获取当前使用的内存
G(\'start\');
$start = memory_get_usage();
// $arr= range(0,1000000);
//
// function gen(){
// $ret = (yield \'yie
header('Content-Type: text/html; charset=utf-8;'); //初始化 获取当前使用的内存 G('start'); $start = memory_get_usage(); // $arr= range(0,1000000); // // function gen(){ // $ret = (yield 'yield1'); // var_dump($ret); // $ret = (yield 'yield2'); // var_dump($ret); // } // // $gen = gen(); // var_dump($gen->current()); // $gen->send('ret1'); // var_dump($gen->current()); // $gen->send('ret2'); foreach( test() as $v){ echo $v; } $end = memory_get_usage(); G('end'); echo "\n\n执行时间:".G('start','end'); echo "\n\n执行内存:".format_memory($end-$start); function G($start='start',$end=''){ static $data = array(); if($end==''){ $data[$start] = mtime(); }else{ return format_time($data[$end] - $data[$start]); } } function mtime(){ $tmp = explode(' ',microtime()); return $tmp[0] $tmp[1]; } function format_memory($num){ return sprintf('%.6f',$num/(1024*1024)).'MB'; } function format_time($num){ return sprintf('%.2f',$num*1000).'ms'; } function xrange($start,$end,$step){ if($start>$end){ $tmp = $end; $end = $start; $start = $tmp; } if($step<0){ throw new LogicException('步长必须大于0'); } for($i=$start;$i<$end;$i =$step){ yield $i; } } function test(){ echo 'a'; return range(0,19); }
很赞哦! (0)
相关文章
文章评论
-
-
-
0条评论