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


Posted in PHP onJune 08, 2013

可能有的读者碰到过类似下面的错误吧:
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()函数,也可以动态的修改最大的内存占用大小:

<?php ini_set("memory_limit", "128M");既然我们能动态的调整最大的内存占用,那我们是否有办法获取目前的内存占用情况呢?答案是肯定的。

1.memory_get_usage(),这个函数的作用是获取目前PHP脚本所用的内存大小。
2.memory_get_peak_usage(),这个函数的作用返回当前脚本到目前位置所占用的内存峰值,这样就可能获取到目前的脚本的内存需求情况。
单就PHP用户空间提供的功能来说,我们似乎无法控制内存的使用,只能被动的获取内存的占用情况

那么当我们知道php引用计数,函数表,符号表,常量表等,这些信息都会占用内存的时候

我们可以有意的避免不必要的浪费内存,比如我们在项目中通常会使用autoload来避免一次性把不一定会使用的类包含进来,而这些信息是会占用内存的

如果我们及时把不再使用的变量unset掉之后可能会释放掉它所占用的空间

PHP 相关文章推荐
如何使用动态共享对象的模式来安装PHP
Oct 09 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
php判断是否为json格式的方法
Mar 04 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
php生成短网址示例
May 05 PHP
php购物车实现方法
Jan 03 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
php如何执行非缓冲查询API
Jul 22 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
Sep 18 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 #PHP
PHP跳转页面的几种实现方法详解
Jun 08 #PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 #PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 #PHP
php引用返回与取消引用的详解
Jun 08 #PHP
PHP stripos()函数及注意事项的分析
Jun 08 #PHP
php自动加载机制的深入分析
Jun 08 #PHP
You might like
PHP swfupload图片上传的实例代码
2013/09/30 PHP
linux下编译安装memcached服务
2014/08/03 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
php数组查找函数总结
2014/11/18 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
Python编程实现的简单Web服务器示例
2017/06/22 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
python画微信表情符的实例代码
2019/10/09 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
会计电算化个人自我评价
2013/11/17 职场文书
中国梦的演讲稿
2014/01/08 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
小学副班长竞选稿
2015/11/21 职场文书
python关于集合的知识案例详解
2021/05/30 Python
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript