一位朋友和我创建了一个大小为30000x60000x3的.jpg,需要7MB,一旦解压缩它应该占用大约21.6GB的内存(30000x60000x3x4 = 2.16 * 10 ^ 10字节)。
我们已经在两台计算机和两部手机中进行了一些测试:
我们预计打开图像时所有设备都会耗尽内存,但事情就是这样:
笔记本电脑:最多需要11GB的物理内存,我们选中了ulimit -m
,其中unlimited
我们设置了vm.overcommit_memory = 2
但仍然没有内存耗尽,它确实减慢了计算机的速度,但并没有阻止它。并且无法打开图像。
桌面:当物理内存为5.7GB时,它停止占用内存。并且无法加载图像。
手机1 :它没有打开,但它不会冻结也不会使手机变慢。
手机2 :打开图像没有问题,速度非常快(~5秒)。
我们想知道哪些安全方法在每个操作系统中都有效,我们如何禁用它们用于测试目的以及为什么Android设备可以比其他计算机更好地处理图像。