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

遇到一个面试题关于数组

遇到一个面试题关于数组

开满天机 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 关注
  • 328 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信