imagick使用共享库,它的内存使用对于PHP来说是遥不可及的,因此调整PHP内存和垃圾收集无济于事.

我自己也有同样的问题,试图用50(!)页3000×2000像素来处理多页tiff图像.

解决方案是让想象力将其像素缓存放在磁盘上.

在创建Imagick对象之前添加它解决了我的问题:

// pixel cache max size

IMagick::setResourceLimit(imagick::RESOURCETYPE_MEMORY, 256);

// maximum amount of memory map to allocate for the pixel cache

IMagick::setResourceLimit(imagick::RESOURCETYPE_MAP, 256);

目标是让imagick将其像素缓存放在磁盘而不是RAM中.默认位置似乎是files / tmp / magick-XXnnnnn,因此请确保/ tmp不在shmfs / ramdisk上,或更改imagick使用的临时目录.

调查的其他资源限制:imagick :: RESOURCETYPE_DISK,imagick :: RESOURCETYPE_FILE和imagick :: RESOURCETYPE_AREA.

它们在imagick::getResourceLimit() manual page中描述(在setResourceLimit()的页面中不太好).

在我的图像处理循环中,我有set_time_limit(300),因为脚本需要很长时间来处理这个巨大的(当解压缩时)图像.

编辑:在最近的版本中,setResourceLimit()不应该作为静态方法调用,而应该在实际对象上调用,例如:

$im->setResourceLimit(imagick::RESOURCETYPE_MEMORY, 256);

$im->setResourceLimit(imagick::RESOURCETYPE_MAP, 256);

$im->setResourceLimit(imagick::RESOURCETYPE_AREA, 1512);

$im->setResourceLimit(imagick::RESOURCETYPE_FILE, 768);

$im->setResourceLimit(imagick::RESOURCETYPE_DISK, -1);

php-imagick漏洞,PHP Imagick内存泄漏相关推荐

  1. java dwr 漏洞_Java DWR内存泄漏问题解决方案

    机器跑了一晚上,发现有崩溃现象,由于页面内有动态绘图功能,我怀疑是绘图原因,但是今天上午有人提醒我才想到,是不是间隔调用时DWR产生了内存泄漏问题? 网上查了一下貌似大家都在讨论这个问题,之前我也挺老 ...

  2. 避免内存泄漏 - C++快速入门38

    避免内存泄漏 让编程改变世界 Change the world by program 避免内存泄漏 这个话题就像古时候女人的裹脚布,又长又臭哈~ 前面我们讲过,分配了一个内存块但忘记了释放它,这是一种 ...

  3. Android App解决卡顿慢之内存抖动及内存泄漏(发现和定位)

    内存抖动是指在短时间内有大量的对象被创建或者被回收的现象,内存抖动出现原因主要是频繁(很重要)在循环里创建对象(导致大量对象在短时间内被创建,由于新对象是要占用内存空间的而且是频繁,如果一次或者两次在 ...

  4. android内存泄漏原因分析,Android Studio3.6的内存泄漏检测功能 VS LeakCanary

    2020年2月,谷歌发布了Android Studio 3.6版.它包括一个新的"内存泄漏检测"功能.这是否意味着我们不再需要流行的内存泄漏检测库"Leak Canary ...

  5. 什么是堆,栈,内存泄漏和内存溢出?

    heap:是由malloc之类函数分配的空间所在地.地址是由低向高增长的. stack:是自动分配变量,以及函数调用的时候所使用的一些空间.地址是由高向低减少的. 一.预备知识-程序的内存分配 一个由 ...

  6. java内存泄漏案例_寻找内存泄漏:一个案例研究

    java内存泄漏案例 一周前,我被要求修复一个有内存泄漏问题的webapp. 考虑到过去两年左右的时间里我已经看到并修复了数百个泄漏,我想这有多难. 但是事实证明这是一个挑战. 12小时后,我发现该应 ...

  7. 监视和检测Java应用程序中的内存泄漏

    因此,您的应用程序内存不足,您日夜不停地分析应用程序,以期捕获对象中的内存漏洞. 后续步骤将说明如何监视和检测您的内存泄漏,以确保您的应用程序安全. 1.怀疑内存泄漏 如果您怀疑有内存泄漏,可以使用一 ...

  8. 寻找内存泄漏:一个案例研究

    一周前,我被要求修复一个有内存泄漏问题的webapp. 考虑到过去两年左右的时间里我已经看到并修复了数百个泄漏,我想这有多难. 但是事实证明这是一个挑战. 12小时后,我发现该应用程序中不少于5个漏洞 ...

  9. 内存泄漏 和 内存溢出

    在计算机科学中,内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况.内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存 ...

最新文章

  1. 《浪潮之巅》作者吴军最新演讲:超级人工智能
  2. 如果某个字段值相同则触发器新增_Thrift IDL新增字段导致版本不一致引发的惨案...
  3. 【搜索引擎基础知识2】网络爬虫的介绍
  4. 数据结构:堆python实现与堆排序
  5. 串口调试助手 rtc 显示时间_闪电侠串口网络调试助手
  6. FreeRTOS任务创建和删除
  7. python(26)查看文件的大小
  8. 深入理解C# 3.x的新特性(2):Extension Method[下篇]
  9. Linux——VIM中代码的折叠和打开
  10. 第二十四章 异常和错误处理 1异常
  11. 有一个字长32位的浮点数符号位1位_边缘计算专题:(二)别看只有0和1,数学不好的勿进!...
  12. 蔚来汽车股价跌跌不休 盘中触及上市以来最低点
  13. 如何批量修改网页 更新网站 一键保存 windows查看和排序
  14. 苹果电脑更改sd卡只读_SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
  15. 苹果x Android,中国发明安卓iPhoneX 安卓iPhoneX有何特别之处?
  16. 在python2里怎么使用ttk_关于用户界面:python 2.7中的Tkinter和ttk
  17. Trie——BZOJ4567/Luogu3294 [Scoi2016]背单词
  18. @synthesize@dynamic@private,@protected,@publicassign、weak、strong、retain、copy、nonatomic、atomic
  19. 2015年,我的创业记忆片段
  20. 双足竞走机器人的意义_基于STM32双足竞步机器人的研究与设计

热门文章

  1. 女神节, 数说奥斯卡女神们 : “惊艳了时光 , 温柔了岁月”
  2. 私库如何区分正式和测试环境独立的库
  3. 大数据安全战略为“互联网+”发展保驾护航
  4. AGX使用ZEDmini记录
  5. 矩阵不可逆的充分必要条件
  6. CentOS7安装Node及npm
  7. JData算法大赛-用户购买预测
  8. 写于京东赛(JData)----如期而至,用户购买日期预测----之后
  9. 拼多多、淘宝、天猫、1688、京东APP商品详情API大全
  10. 收到银行短信你正在使用Android设备,手机收到扣费短信,无故被扣钱?小心自动订阅的大坑!...