如何解决 PHP Fatal error: Allowed memory of
1、去掉多余函数和变量代码中的空格和注释都不影响内存的占用,但调用文件中多余的函数和变量就会占用内存,于是把不用的函数方法和变量删除掉,尤其是一些复制过来的文件,会有很多不需要的方法,一定要删掉
2、不要声明多余的变量如:
3、不用的变量及时释放掉有些变量都是过程变量,尤其是做一些数据格式化转换的时候,一些原始的,过度的变量要及时释放掉如:
4、优化函数返回结果大小函数尽可能的只返回每次调用所需要的结果集比如:要得到的是:$datastruct
5、优化mysql返回结果集的大小(效果显著)查询了一下表中数据的大小 (看图)大小:2.52MB.再看看结果集在PHP中占的内存:内存耗用:(76201912-1086264)/1024/1024 = 71.64M哇 PHP的数组太占内存了网上有人做过数组占用内存的测试,如下:
6、PHP中的数组是用一种HASH结构(HashTable)来实现的,关于PHP中的数组的实现,鸟哥有一篇文章介绍过:深入理解PHP之数组(遍历顺序)那么我们怎么优化那?1:缩小返回的结果集,一开始是查询出了所有字段,改成 只返回需要的字段2:在1的基础上,我们再使用mysql_unbuffered_query来查询数据
7、缓存里尽量只存需要的信息目前我们常用redis memcache做缓存,如果存全量信息,随着数据量的增加,全量信息会成倍数的增加,都很消耗机器内存
8、设计数据库的时候,把数据库字段设计的尽可能小(前提是满足需求)1:为了省空间 2:为了查询的时候
9、这样基本就搞定了。推荐以下鸟哥的三篇文章:(http://www.laruence.com/)深入理解PHP内存管理之谁动了我的内存深入理解PHP之数组(遍历顺序)PHP中的Hash算法
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:82
阅读量:60
阅读量:94
阅读量:50
阅读量:93