2024-11-21 02:11:23
大家好,今天小编关注到一个比较有意思的话题,就是关于php 释放内存的问题,于是小编就整理了2个相关介绍php 释放内存的解答,让我们一起看看吧。
在PHP中,unset() 函数用于释放变量。当使用 unset() 函数时,变量将被标记为“未设置”,并立即释放内存。然而,这并不意味着内存立即被释放,因为PHP的垃圾回收器会在适当的时候清理未设置的变量并释放内存。
另一方面,将变量设置为 null 赋予变量一个空值,但并不立即释放内存。相反,PHP的垃圾回收器会在适当的时候清理变量并释放内存。
总结来说,unset() 函数会立即释放变量并标记为“未设置”,而将变量设置为 null 只是给变量赋予一个空值,并不立即释放内存。实际的内存释放由PHP的垃圾回收器在适当的时候完成。
查看当前内存使用情况使用:memory_get_usage()函数。
查看内存使用峰值:memory_get_peak_usage()函数。
header("Content-Type:text/html;charset=utf-8");
/**
* 格式化字节大小
* @param number $size 字节数
* @param string $delimiter 数字和单位分隔符
* @return string 格式化后的带单位的大小
*/
function format_bytes($size, $delimiter = '') {
$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024;
return round($size, 2) . $delimiter ." ".$units[$i];
}
echo "内存初始状态:".format_bytes(memory_get_usage());
echo "
echo "开始使用内存
";
//使用内存
for($i = 0;$i < 100000;$i++){
$array[] = md5($i);
}
echo "内存状态:".format_bytes(memory_get_usage())."
";
echo "删除一半的内存
";
//删除一半的内存
for($i = 0;$i < 100000;$i++){
unset($array[$i]);
}
echo "最终内存状态:".format_bytes(memory_get_usage());
echo "
echo "内存峰值状态:".format_bytes(memory_get_peak_usage());
执行结果:
内存初始状态:65.27 KB
开始使用内存
内存状态:12.01 MB
删除一半的内存
最终内存状态:577.52 KB
内存峰值状态:12.01 MB
到此,以上就是小编对于php 释放内存的问题就介绍到这了,希望介绍关于php 释放内存的2点解答对大家有用。
Copyright © 2005-2024 代潇瑞博客 www.daixiaorui.com All Rights Reserved.
免责声明: 1、本站部分内容系互联网收集或编辑转载,并不代表本网赞同其观点和对其真实性负责。 2、本页面内容里面包含的图片、视频、音频等文件均为外部引用,本站一律不提供存储。 3、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除或断开链接! 4、本站如遇以版权恶意诈骗,我们必奉陪到底,抵制恶意行为。 ※ 有关作品版权事宜请联系客服邮箱:478923*qq.com(*换成@)
渝ICP备2023009091号-21