当前位置:   article > 正文

PHP手动释放内存_php 释放内存

php 释放内存

写在最前面

如果你买了一本PHP的书, 它告诉你: "不用在PHP主动释放资源, 因为PHP会帮你释放"的话, 我建议你, 烧了它.

​请手动释放你的资源(Please release resources manually)​

问题

内存使用:2259.38M, pid:62602, 类名:app\report\task\ReportSalesDailyByEditorTask:6553, 服务器:common, 请相关人员处理。

一段报表的循环代码占用了2.2G内存

  1. /**
  2. * 手动释放资源
  3. */
  4. $allJobUser = null;

每个select查询结果的地方都手动释放了一下,内存使用量一下子降到512M以下

测试代码

  1. <?php
  2. $s = str_repeat('1',1024);
  3. $b = &$s;
  4. $mem_1 = memory_get_usage(); //获取当前占用内存
  5. echo $mem_1 . "<br>";
  6. unset($s);
  7. // $s = null;
  8. $mem_2 = memory_get_usage(); // 再查看当前占用内存
  9. echo $mem_2 . "<br>";
  10. echo $mem_1 - $mem_2 ;

结果分析

  1. 1、将 $s = null 注释
  2. 237280
  3. 237328
  4. -48
  5. 2、将 unset 注释
  6. 237680
  7. 236768
  8. 912

结论

  1. 1. unset只是变量计数器减1,,当计数器为0的时候会触发回收
  2. 2. $s=null 会直接触发回收

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/49673
推荐阅读
相关标签
  

闽ICP备14008679号