为什么PHP脚本会不断占用更多内存?

Chr*_*ris 2 php

看这个例子:

echo memory_get_usage() . "\n"; // 36640
$a = str_repeat("Hello", 4242);
echo memory_get_usage() . "\n"; // 57960
unset($a);
echo memory_get_usage() . "\n"; // 36744
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么在取消设置变量后,内存使用量不会返回到36640

pow*_*tac 5

如果你这样做两次,内存将保持在36744 ......

echo memory_get_usage() . "\n"; // 36640
$a = str_repeat("Hello", 4242);
echo memory_get_usage() . "\n"; // 57960
unset($a);
echo memory_get_usage() . "\n"; // 36744
$a = str_repeat("Hello", 4242);
unset($a);
echo memory_get_usage() . "\n"; // -> 36744
Run Code Online (Sandbox Code Playgroud)

  • 这意味着什么? (2认同)
  • 它向您展示了解释器的工作原理.即使在取消设置之后,也会有很小的开销.但是当再次这样做时,没有更多的内存开销. (2认同)