我的个人博客:逐步前行STEP

今天上传一些图片到我们的网站上,发现有些图片上传后没有任何提示就报错500,调试一下发现是在做图片处理的时候报错的,查日志后发现如下提示:

FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes)

原来是内存溢出了,可是上传的图片都不大,因为网站限制上传文件不能超过10M,而ini配置文件中的上传限制和NGINX服务器的配置文件的上传限制都远大于10M,怎么还会内存溢出???

然后一番检索发现有位仁兄提出一个图片占用内存的公式:

(图片对象的width和height )X(图片的通道数,一般是3)X 1.7

按这个计算,我上传的4.2M的图片(6577 × 4385)占了140M,而默认的内存限制是128M,妥妥的超过了,不过这个公式应该是估算,实际报错提示占用了128.0078125M,也就刚好超过128M,离140M差得有点多,不过多次测试结果表明只要按这个公式计算结果小于134217728就不会内存溢出。

所以,方案是加上一个限制:长不超过6000px,宽不超过4000px,因为这个尺寸按上面的公式计算内存占用超不多116M。

PHP处理图片导致内存溢出相关推荐

  1. 图片--Android加载图片导致内存溢出(Out of Memory异常)

    Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory  Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证) ...

  2. Android加载图片导致内存溢出(Out of Memory异常)

    Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory  Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证) ...

  3. 添加IFrame导致内存溢出的解决过程(IE浏览器,目前发现了原因,还未解决)...

    1.  现象 每次动态添加iframe时,iexplore.exe进程占据的内存都会增加(大概10M左右),不会自动释放,最终导致内存溢出 2.  解决过程 经过网络的一番搜索,基本上给出的解决方案是 ...

  4. 本地项目antd 修改.less文件导致内存溢出

    项目场景: antd 项目,修改less文件会导致内存溢出 问题描述 本地环境antd 项目,修改less文件会导致内存溢出:如下 FATAL ERROR: Reached heap limit Al ...

  5. php查询mysql返回大量数据结果集导致内存溢出的解决方法

    web开发中如果遇到php查询mysql返回大量数据导致内存溢出.或者内存不够用的情况那就需要看下MySQL C API的关联,那么究竟是什么导致php查询mysql返回大量数据时内存不够用情况? 答 ...

  6. android 内存溢出检查,Android Handler使用导致内存溢出附带LeakCanary排查

    最近项目马上结束了在对项目进行检查有没有内存泄漏的地方,这里使用的是leakcanary. 使用步骤很简单: 添加依赖: dependencies { debugCompile 'com.square ...

  7. 接口数据量太大,导致内存溢出,解决办法

    通常我们使用接口调用数据总是返回一段我们需要的信息,或者是json 格式信息,通过接收将数据保存到程序当中,再对接收到的数据进行转换成对应的模型格式 .目前遇到的问题是接收的数据量过于巨大,导致完整接 ...

  8. POI读写超大数据量Excel,解决超过几万行而导致内存溢出的问题(附源码)

    来源:cnblogs.com/swordfall/p/8298386.html 1. Excel2003与Excel2007 两个版本的最大行数和列数不同,2003版最大行数是65536行,最大列数是 ...

  9. JVM--调优--04--案例02--大SQL导致内存溢出

    JVM–调优–04–案例02–大SQL导致内存溢出 1.现象 项目启动,且没有人使用,一段时间后就报redis连接异常. 1.1.日志信息 org.redisson.client.RedisTimeo ...

最新文章

  1. pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码
  2. 问题 1436: 地宫取宝 (dp)
  3. Linux CentOS 7【修改 屏幕(分辨率)大小】
  4. FLV视频在IIS6.0下不能播放 处理的方法
  5. 极光推送收费标准_刚刚,安卓统一推送又有进展了!华为率先...
  6. 布隆过滤器 redis_redis布隆过滤器
  7. Redmi K40系统截图曝光:配备顶级2K屏幕+骁龙870移动平台
  8. c/c++编译的程序占用的内存分配
  9. python爬虫爬取图片代码_Python爬虫爬取煎蛋网图片代码实战
  10. 公共代码之密码加解密
  11. mysql pxc集群介绍_MySQL中PXC集群的介绍
  12. 单片机算法c语言程序,51单片机PID的算法实现程序C语言
  13. 01 社会网络分析基础理论!
  14. 银行业务系统数据库设计与实现
  15. 轻量级 android模拟器,【分享中控】轻量级中控系统
  16. 华为首部鸿蒙手机,液态镜头首次亮相亚美AM8探秘华为首部鸿蒙手机P50
  17. 在 JavaScript 中如何克隆对象?
  18. 惠普服务器蓝屏怎么修复,Win10惠普电脑出现蓝屏?解决教程附上
  19. 成功解决 RecoveryYour PC/Device needs to be repairedThe Boot c onfiguration Data for your PC is missin
  20. 梁宁-产品思维-笔记

热门文章

  1. 打不开mysql exe文件怎么打开文件_exe文件打不开怎么办?
  2. python bokeh 示例_Python bokeh.plotting.figure.arc()用法及代码示例
  3. 微擎乐慧云智慧农场源码V1.0.1
  4. HTML在线颜色代码选取器源码
  5. C#与NET实战 第5章 进程、线程与同步 节选
  6. SQL存储过程调试方法
  7. vsftpd 在linux 中的环境配置【部分原创】
  8. Ubuntu: 一个命令行下的翻译工具
  9. Magento教程 23:如何获取销售报表?
  10. 用JavaScript获取页面上被选中的文字的技巧