找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 616|回复: 0
打印 上一主题 下一主题

深入PHP内存相关的功能特性详解

[复制链接]

2487

主题

2487

帖子

7391

积分

论坛元老

Rank: 8Rank: 8

积分
7391
跳转到指定楼层
楼主
发表于 2018-2-14 08:20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            可能有的读者碰到过类似下面的错误吧:
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)这个错误的信息很明确,PHP已经达到了允许使用的最大内存了,通常上来说这很有可能是我们的程序编写的有些问题。比如:一次性读取超大的文件到内存中,或者出现超大的数组,或者在大循环中的没有及时是放掉不再使用的变量,这些都有可能会造成内存占用过大而被终止。
PHP默认的最大内存使用大小是32M, 如果你真的需要使用超过32M的内存可以修改php.ini配置文件的如下配置:
memory_limit = 32M如果你无法修改php配置文件,同时你的PHP环境没有禁用ini_set()函数,也可以动态的修改最大的内存占用大小:
1.memory_get_usage(),这个函数的作用是获取目前PHP脚本所用的内存大小。
2.memory_get_peak_usage(),这个函数的作用返回当前脚本到目前位置所占用的内存峰值,这样就可能获取到目前的脚本的内存需求情况。
单就PHP用户空间提供的功能来说,我们似乎无法控制内存的使用,只能被动的获取内存的占用情况
那么当我们知道php引用计数,函数表,符号表,常量表等,这些信息都会占用内存的时候
我们可以有意的避免不必要的浪费内存,比如我们在项目中通常会使用autoload来避免一次性把不一定会使用的类包含进来,而这些信息是会占用内存的
如果我们及时把不再使用的变量unset掉之后可能会释放掉它所占用的空间
            
            
您可能感兴趣的文章:
  • 如何获知PHP程序占用多少内存(memory_get_usage)
  • phpExcel导出大量数据出现内存溢出错误的解决方法
  • php页面消耗内存过大的处理办法
  • 深入解析PHP垃圾回收机制对内存泄露的处理
  • 深入解析PHP内存管理之谁动了我的内存
  • 关于PHP内存溢出问题的解决方法
  • 解析PHP中的unset究竟会不会释放内存
  • 关于php内存不够用的快速解决方法
  • PHP变量内存分配问题记录整理
  • PHP对象递归引用造成内存泄漏分析
  • PHP对象相互引用的内存溢出实例分析
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端