内存问题

内存1个G给他使用都不够,循环的代码都没执行完,这是为什么?

$data=[];
for ($i=0; $i < 10000*10000; $i++) { 
    $data[]=rand(0,10000000);
}
sort($data);
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

建议你看一下这篇文章,《PHP数组实际占用内存大小的分析》
按照这篇文章,一个数组元素大概至少要占用54个字节, 就按最小的算,100000000 × 54 ÷ 1024 ÷1024 ≈ 5149.84(MB)都5G内存了。1G怎么够用

2年前 评论
讨论数量: 7

试了下,要 4 G+ ……

        $data=[];
        for ($i=0; $i < 10000*10000; $i++) {
            $data[]=rand(0,10000000);
        }

        sort($data);

        echo '内存 ' . memory_get_usage()/1024/1024 .'M';

结果

内存 4123.9258270264 M
进程已结束,退出代码为 0。
执行时间: 112,012 ms。
2年前 评论
颠倒的玉石

一亿条数据,你想怎么样

2年前 评论

因为你的内存不够 建议给1T

2年前 评论

试了下,要 4 G+ ……

        $data=[];
        for ($i=0; $i < 10000*10000; $i++) {
            $data[]=rand(0,10000000);
        }

        sort($data);

        echo '内存 ' . memory_get_usage()/1024/1024 .'M';

结果

内存 4123.9258270264 M
进程已结束,退出代码为 0。
执行时间: 112,012 ms。
2年前 评论

生产队的驴擦了擦汉。

2年前 评论

建议你看一下这篇文章,《PHP数组实际占用内存大小的分析》
按照这篇文章,一个数组元素大概至少要占用54个字节, 就按最小的算,100000000 × 54 ÷ 1024 ÷1024 ≈ 5149.84(MB)都5G内存了。1G怎么够用

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!