function com($start) { $tmp = []; for($i=0; $i<300000; $i++){ $tmp[] = $i; } $end = memory_get_usage(); echo 'com 函数占的内存:', ($end-$start), '<br>'; return $tmp; } function gen($start) { // echo 'gen 函数站的内存:', memory_get_usage(), '<br>'; for($i=0; $i<300000; $i++){ yield $i; } $end = memory_get_usage(); echo '生成器占用的内存:', ($end-$start), '<br>'; } $start = memory_get_usage(); //初识内存 echo '程序开始加载...<br>'; echo '初始内存:', $start, '<br>'; echo '加载com函数:<br>'; (com($start)); $end = memory_get_usage(); echo '开始加载生成器...<br>'; $start = memory_get_usage(); foreach (gen($start) as $key => $value) { //echo $value; } $end = memory_get_usage(); echo '生成器运行结束程序占用的内存:',($end), '<br>'; echo '程序运行结束!<br>';
输出结果:
程序开始加载... 初始内存:377928 加载com函数: com 函数占的内存:14680128 开始加载生成器... 生成器占用的内存:544 生成器运行结束程序占用的内存:377928 程序运行结束!