在运行dedecms是有些朋友会发现有些页面会提示Fatal error: Allowed memory size of 134217728 bytes exhauste错误了,下面我们一起来看看解决此问题办法。
报错提示:Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 38218371 bytes) in .....
解决方法:
1.取消PHP的内存限制。
在php程序中添加 ini_set("memory_limit","-1");
2.根据自己的需要及参考本机的内存大小修改php内存限制,如改为1024M。
在php程序中添加 ini_set("memory_limit","1024M"); 或者将php.ini中相应位置改为memory_limit = 1024M;
内存限制的意义
php中的相关文档解释 memory_limit 如下:
memory_limit: integer
该指令设定了一个脚本 所能够申请到的最大内存字节数。这有助于防止写得不好的脚本消耗光服务器上的可用内存。要使用此指令必须在编译的时候激活。因此 configure 一行中应该包括:--enable-memory-limit。如果不需要任何内存上的限制,必须将其设为 -1。 从 php 4.3.2 起,当激活了 memory_limit,PHP 函数 memory_get_usage() 便可以使用了。也就是说,php在一个 page 中的处理内存限制,默认的(/etc/php.ini)定义为 128M (我的系统默认安装后),后来开发组的应用写的越来越复杂,但是在结构上可能还有些欠缺,频繁的对象请求,居然造成了内存不足。
应用层面测试与解决方法
最好的方式应该在应用层面解决,而不是不断的增加内存设置。以下为代码测试:
代码如下 | 复制代码 |
|
运行结果显示如下:
total runtime: 1.47 s
memory usage: 77.09 M
一个页面居然会有77M的请求。究其原因,是程序员在编码时,仅仅对变量赋值,却从来没有 unset ($var) 过。试想,如果一个页面请求要处理20个sql查询,每个sql查询返回10个sql结果,而程序员从来都不关心是返回一个row的所有column还是仅仅返回需要的column(实际上当我们采用更common的中间层时,往往会返回全部的column而不是特定的某几个字段,就像在 ORM 中如NHibernate, JBOSS中的那样)如果一条row有10K, 那么这个页面到处理结束时就要增加到 10K*10*20=2M的数组分配,这还不算有时候我们需要最数组进行复制。
所以在php中,合理的方法是变量使用后就 unset($var),最大限度节省内存资源。
经验之谈
本人有一台服务器使用的是apaceh2.3与php5.2.6上面的方法无效,经官方确认是php版本bug了,我们可以换个高版本手php版本即可解决。

win10打开游戏fatalerror怎么办?我们在运行软件或者是游戏的时候会出现提示fatalerror错误怎么办?下面就让本站来为用户们来仔细的介绍一下win10打开游戏fatalerror的处理办法吧。win10打开游戏fatalerror怎么办?方法一:游戏客户端存在了问题,例如文件的损坏或者使用了一些破解补丁,都会导致fatalerror错误的出现,大家可以重新下载游戏。方法二:电脑内存太小也会导致fatalerror错误的出现,如果是物理内存足够的话,那么可以尝试设置一下系统的虚拟内

PHP作为一种流行的Web开发语言,已经被使用了很长时间。PHP中集成的PDO(PHP数据对象)类是我们在开发Web应用程序过程中与数据库进行交互的一种常用方法。但是,一些PHP开发者经常遇到的问题是,当使用PDO类与数据库进行交互时,他们会收到这样的错误:PHPFatalerror:CalltoundefinedmethodPDO::prep

在Vue应用中使用axios是十分常见的,axios是一种基于Promise的HTTP客户端,可以用于浏览器和Node.js。在开发过程中,有时会出现“Uncaught(inpromise)Error:Requestfailedwithstatuscode500”的错误提示,对于开发者来说,这个错误提示可能有些难以理解和解决。本文将会探讨这

解决C++代码中出现的“error:incompletetypeisnotallowed”问题在C++的编程过程中,有时候会遇到一些编译错误,其中一个常见的错误是“error:incompletetypeisnotallowed”。这个错误通常是由于在使用不完整的类型进行操作时引起的。本文将介绍这个错误的原因,并提供几种解决方法。首先,我

玩家在最终幻想7中进行游戏时,有很多玩家遇到了fatalerror的问题不知道怎么解决,通常是关于内存不能读取的问题,建议玩家尝试重装游戏解决。最终幻想7fatalerror怎么解决1、重装游戏游戏客户端问题,如文件损坏,不完整,使用了一些破解补丁都会导致致命错误的出现,建议重装游戏。2、把所有文件属性的只读去掉某些文件属性不该是只读而设置成了只读,把所有文件属性的只读去掉就行了,比如一款游戏不能玩,那么右键点击该游戏的安装文件夹,取消只读属性。3、设置虚拟内存可能是由于内存太小,如果物理内存足

“0271:real time clock error”开不开机的解决办法:1、按一下F1,在出现的界面中,将选项栏转到第三项“Date/Time”;2、将系统时间手动修改成现在的时间;3、按F10,在弹出的对话框中,选择yes;4、重新打开笔记本即可正常开机。

解决C++代码中出现的“error:expectedinitializerbefore'datatype'”问题在C++编程中,有时候我们在编写代码时会遇到一些编译错误,其中一种常见的错误是“error:expectedinitializerbefore'datatype'”。这个错误通常在变量声明或函数定义中发生,可能导致程序无法正确编译或

如何解决PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory在使用PHP开发过程中,我们经常会遇到一些文件操作的问题,其中之一就是"PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver Mac版
视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Linux新版
SublimeText3 Linux最新版