128MB的PHP内存限制很多吗?

Nig*_*awk 1 php memory limit

今天我在我正在构建的内容管理系统中添加了一个新功能.根据您上传图像的位置,PHP将调整图像大小以适合指定的位置.它工作得很好,但是当我尝试上传更大的图像时,就像3MB图像一样,我遇到了一个致命的错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted 
(tried to allocate 42520 bytes) in...
Run Code Online (Sandbox Code Playgroud)

我认为128MB的内存是相当多的,考虑到我没有跑那么多......至少我不这么认为.它试图为调整大小过程分配另外42520个字节,但失败了.

我的问题是我应该(A)增加限制还是(B)重新评估为什么我首先使用这么多内存?128MB是一个好数字还是太大/太少?

谢谢,瑞恩

解析度

我得出结论,128MB对于调整图像大小实在太大了,我非常专注于查看其他选项...比如exec()选项,我从未仔细研究过我的"样本"数据.事实证明,即使我的大图像只有2.83MB,它的宽度也超过10000px.那是个问题.:)

Qua*_*kle 6

GD将图像作为位图存储在内存中,因此我不会完全排除使用某些JPG图像(例如,高分辨率,高度压缩)的可能性,位图版本可能非常大.

在打开并开始调整图像大小之前调用memory_get_usage()并查看该内存量是否太大.

同样只是FYI,当脚本说"(试图分配42520字节)"时,这并不意味着它只需要42520多个字节才能成功运行.它只是意味着它需要42520多个字节.稍后它可能试图分配更多内存.因此,只需在内存总量中添加42520个字节就可能无法修复任何内容.