您的位置:HBcms宏博内容管理系统 PHP技术 正文
 添加时间:2006-08-04 原文发表:2006-08-04 人气:118


但栏目超过一定数目时候,批量将栏目数据导入配置文件时,在设置了memory_limit 的环境会出现错误:

Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 44 bytes)

147个栏目,memory_limit =40M 都不够用(才导入70个栏目就报错了)!

 

 

检查了很久,发现错误可能存在于config组件:

Config之前占用内存。。2897264
Config后占用内存。。2897264
parseConfig后占用内存。。3667464  =》这里一下就消耗了近1M的内存,50个栏目,就要50M内存
toString后占用内存。。3667464

发现了问题,如何修改呢? 我需要释放内存,只能从程序动手。

var_dump了parseConfig,发现是一个超级大的obj,

查看config源代码后,决定暂时扩展一下toString函数,将 $obj 从内存中释放

unset() 发现没作用。

$obj = ''; 或 $obj = NULL;   倒是很有效。

测试效果如下:

Config之前内存。。2897264
Config内存。。2897264
parseConfig内存。。3667464
toString内存。。2969008

 

Config之前内存。。2898160
Config内存。。2898160
parseConfig内存。。3668360
toString内存。。2970240

 

Config之前内存。。2897112
Config内存。。2897112
parseConfig内存。。3667312
toString内存。。2968352

 

达到了预期目的,以后有精力再花时间好好研究一下。

估计是config作者的一个疏忽,毕竟像我们这样使用它的情况很少。


 

本页地址
相关文章

PHP官方网站,php官方论坛,中文函数手册下
用php实现远程安装:自动下载,自动解压
PHP程序员易忽略的PHP精华和技巧
php ajax实例: 开发高质量的RSS聚合器
PHP ASP比较:PHP比ASP优秀的七个理由
Smarty+PEAR::Pager+PEAR::HTML_table列表
PHP6下载,php6介绍和php6安装手册
PHP的PEAR::HTML_AJAX类库应用
最佳的PHP数据库MySQL市场主管采访
SMTP判断邮箱是否存在,检查email地址是否真
php程序员前途,mysql数据库和oracle的区别

相关评论


本文章所属分类:首页 PHP技术