当我运行以下脚本时:
my @arr = [1..5000000]; for($i=0; $i<5000000; $i++) { $arr[$i] = $i; if($i % 1000000 == 0) { print "$i\n"; } }
它消耗大约500 MB的内存.用于更高级别的编译语言我希望它大约是5M * 4B = 20MB(每个数字4个字节).
我猜这是因为每个值都是标量,而不是简单的二进制数.是否可以通过将这些值视为数字来减少内存占用量,或者这个任务的唯一方法是500 MB?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。