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)
基础教程推荐
猜你喜欢
- HTTP 与 FTP 上传 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 使用 PDO 转义列名 2021-01-01