这是代码(只是对实际问题的简化):
<?php
echo memory_get_usage() . "\n";
function f() {
throw new Exception();
}
function foo() {
try {
f();
} catch (Exception $e) {
}
}
foo();
echo memory_get_usage() . "\n";
这是输出(PHP 5.3):
630680
630848
内存发生了什么(丢失了168个字节)?异常对象没有被破坏?请帮忙!感谢
答案 0 :(得分:0)
异常对象被销毁。更有可能的是,您有输出缓冲,并且添加的168个字节来自存储在缓冲区中的回显this is a test\n
。异常将使用超过168字节(因为它存储回溯和其他信息)。