ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

允许的内存大小*个字节已用尽,以php为单位

2019-12-10 17:28:53  阅读:232  来源: 互联网

标签:memory-management php


我在php中收到“内存不足”错误.我知道可以用ini_set(“ memory_limit”,“ 64M”)之类的东西来解决,但我不想这么做,因为脚本的大量内存是异常的.我有一些报告非常庞大,以至于我几乎需要该内存,但通常不需要.

问题是:我什至不知道哪个脚本正在消耗那么多的内存,而且还没有用户报告错误.我知道这仅是由于log_errors(设置为true)和error_log(设置为我的桌面上非常可见的文件)而发生的,但是它没有报告哪个脚本是罪魁祸首.

关于如何知道的任何想法吗?

解决方法:

您可能会遇到一些基本的算法错误,创建大型数据结构,与其他结构一样重建数据,过多的字符串操作,将整个文件加载到内存中,从存储中重新获取数据,而不是重新使用上次检索到的数据,之类的东西.许多本地数据库处理程序会为您提供查询返回的整个数据集,而不是为您提供数据集资源.这对于查询可能返回比原始设想更多的数据的查询尤其有害.

分析代码后,就可以开始寻找内存浪费.为了处理大型日志记录数据集,将代码结构化为一次只能处理一行,因此它可以(例如)while($data = mysql_fetch_assoc())而不是foreach($data_rows as $data).这也使您可以使用无缓冲查询,这也将减少内存消耗.

错误日志应该告诉您已死的脚本.也许Apache错误日志可以提供帮助.

标签:memory-management,php
来源: https://codeday.me/bug/20191210/2103136.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有