为了账号安全,请及时绑定邮箱和手机立即绑定

遇到一个面试题关于数组

遇到一个面试题关于数组

开满天机 2019-04-21 20:41:49
往数组添充20万个元素,怎么保证内存开销最小,面试官平常比如几十MB,他能做到10MB,,他说的啥我记不清了,说的很含糊,好像说数组迭代和压缩什么,求大神,这是怎么做到的?
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

PHP7测试了下,传统的for循环内存占用比yield实现的迭代器小,但相差不大.
////传统的for循环
//for($i=0;$i<200000;$i++){
//$arr[$i]=$i;
//}
//语法糖迭代器
functionxrange($start,$end){
for($i=$start;$i<=$end;$i++){
yield$i;
}
}
foreach(xrange(1,200000)as$i){
$arr[$i]=$i;
}
echomemory_get_peak_usage()."\n";
echomemory_get_usage()."\n";
//传统的for循环:9789696字节(峰值)6639888字节
//语法糖迭代器:9795176字节(峰值)6640952字节
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 346 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号