没有不值得去解决的问题,也没有不值得去学习的技术!

分配给 PHP 的内存量的查看,unset() 对于降低 PHP 脚本实际使用的内存量的分析

基于 一个 memory_get_usage() 例子,调整之后
1、参考网址:https://www.php.net/manual/zh/function.memory-get-usage.php 2、基于 一个 memory_get_usage() 例子,调整之后,如图1,代码如下:
基于 一个 memory_get_usage() 例子,调整之后
图1


//这只是个例子,下面的数字取决于你的系统

echo memory_get_usage()/1024/1024 . " MB\n"; // 0.37361145019531 MB

$a = str_repeat("Hello", 424200);

echo memory_get_usage()/1024/1024 . " MB\n"; // 4.3736343383789 MB

unset($a);

echo memory_get_usage()/1024/1024 . " MB\n"; // 0.37361145019531 MB

echo memory_get_peak_usage()/1024/1024 . " MB\n"; // 4.3739242553711 MB


3、执行结果,unset() 对于降低 PHP 脚本实际使用的内存量是有效果的。


0.37361145019531 MB 4.3736343383789 MB 0.37361145019531 MB 4.3739242553711 MB


4、在 Yii 2.0 中,运行同样的代码,查看调试数据的内存占用,其值 Memory 11.356 MB,与 memory_get_peak_usage() – 返回分配给 PHP 内存的峰值一致。如图2
在 Yii 2.0 中,运行同样的代码,查看调试数据的内存占用,其值 Memory 11.356 MB,与 memory_get_peak_usage() - 返回分配给 PHP 内存的峰值一致。
图2


7.3560180664062 MB 11.35604095459 MB 7.3560180664062 MB 11.356330871582 MB


5、重复第 2 步骤,将 real_usage 设置为 TRUE,获取系统分配总的内存尺寸,包括未使用的页。如果未设置或者设置为 FALSE,仅仅报告实际使用的内存量。执行结果,unset() 对于降低 PHP 脚本获取系统分配总的内存尺寸仍然是有效果的。


// 这只是个例子,下面的数字取决于你的系统

echo memory_get_usage(true)/1024/1024 . " MB\n"; // 0.37361145019531 MB

$a = str_repeat("Hello", 424200);

echo memory_get_usage(true)/1024/1024 . " MB\n"; // 4.3736343383789 MB

unset($a);

echo memory_get_usage(true)/1024/1024 . " MB\n"; // 0.37361145019531 MB

echo memory_get_peak_usage(true)/1024/1024 . " MB\n"; // 4.3739242553711 MB




2 MB 6 MB 2 MB 6 MB


 

PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理