我有此输出:
root@hostname:/home/admin# perl -V:ptrsize
ptrsize='4';
根据this answer,ptrsize='4'
表示perl能够寻址4GB的内存。
但是,当将大量数据加载到内存中时,在遇到Out of memory错误之前,我始终能够准确加载4190924
(4.19)。
为什么它在4000000
(4GB)下没有失败?
为了完整起见,我检查了通过运行qx{ grep VmSize /proc/$$/status };
使用的内存量
32位指针的限制为2 ^ 32 = 4,294,967,296字节,正确表示为4 GiB,但通常称为4GB。这是4,194,304 kiB(VmSize报告的单位)。您进入的范围为4kiB(在大多数系统上为一页)。