转:谁动了我的内存(PHP内存管理)

首先让我们看一个问题: 如下代码的输出,


  1. var_dump(memory_get_usage());
  2. $a = "laruence";
  3. var_dump(memory_get_usage());
  4. unset($a);
  5. var_dump(memory_get_usage());

输出(在我的个人电脑上, 可能会因为系统,PHP版本,载入的扩展不同而不同):


  1. int(90440)
  2. int(90640)
  3. int(90472)

注意到 90472-90440=32, 于是就有了各种的结论, 有的人说PHP的unset并不真正释放内存, 有的说, PHP的unset只是在释放大变量(大量字符串, 大数组)的时候才会真正free内存, 更有人说, 在PHP层面讨论内存是没有意义的.

那么, 到底unset会不会释放内存? 这32个字节跑哪里去了?

要回答这个问题, 我将从俩个方面入手:


阅读剩余部分...

    Page :
  1. 1