php yield测试
2016-08-01 PHP 1042
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条评论