PHP5中报Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 85 bytes)错误,对于memory_limit的设定已经从以往的8M扩大到128M的上限。对于配置中的定义解释是: memory_limit = 128M;PHP5中报Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 85 bytes)错误,对于memory_limit的设定已经从以往的8M扩大到128M的上限。对于配置中的定义解释是: memory_limit = 128M; Maximum amount of memory a script may consume (128MB) 最大单线程的独立内存
Maximum amount of memory a script may consume (128MB) 最大单线程的独立内存使用量。也就是一个web请求,给予线程最大的内存使用量的定义。
总结,出现这种问题的情况分三种:
1.处理的数据量大
1>时间换空间,数据分段处理,设置更大的程序执行时间
2>用完的数据unset释放内存
场景1:处理大量日志文件
场景2:一次从数据库读取的数据太大
2.处理的数据量不大,但是你php.ini配置的内存大小设置太小
1>、修改php.ini
memory_limit = 128
这种方法需要重启服务器,很显然,此方法对虚拟机有限制。2>、通过ini_set函数修改配置选项值
ini_set (‘memory_limit’, ‘128M’)
3.逻辑出现死循环时间换空间,空间换时间概念理解
算法需要考虑时间、空间复杂度,一般这两者是不可皆得,要么内存占用比较小但是运行时间长,要么算的比较快但是空间占用大。
在一些特定时候会极力优化其中一方,这时候就是牺牲另一方来达到目的。
设置程序执行时间
1、在php.ini里面设置
max_execution_time = 120;
2、通过PHP的ini_set函数设置
ini_set(“max_execution_time”, “120”);
3、通过set_time_limit 函数设置
set_time_limit(120);
以上几个数字设置为0则无限制,脚本会一直执行下去,直到执行结束。
沃梦达教程
本文标题为:Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 85 bytes)
基础教程推荐
猜你喜欢
- 使用 scandir() 在目录中查找文件夹 (PHP) 2022-01-01
- 将变量从树枝传递给 js 2022-01-01
- Yii2 - 在运行时设置邮件传输参数 2022-01-01
- 主题化 Drupal 7 的 Ubercart “/cart"页 2021-01-01
- Web 服务器如何处理请求? 2021-01-01
- 如何在数学上评估像“2-1"这样的字符串?产生“1"? 2022-01-01
- PHPUnit 的 Selenium 2 文档到底在哪里? 2022-01-01
- php中的foreach复选框POST 2021-01-01
- php中的PDF导出 2022-01-01
- php 7.4 在写入变量中的 Twig 问题 2022-01-01
