有一种方法可以获取 PHP 正在使用的总内存(memory_get_usage()
),但是如何获取单个对象在内存中的大小?
我显然不是在谈论 count()
,因为我想要一个可能很复杂的数据结构中的字节数。
最佳答案
您可以在分配类之前和之后调用 memory_get_usage(),如 this example from IBM 所示。 .您甚至可以创建一个包装器来执行此操作,可能将结果存储在复杂类本身的成员变量中。
编辑:
要阐明有关存储分配的内存大小的部分,您可以执行以下操作:
class MyBigClass
{
var $allocatedSize;
var $allMyOtherStuff;
}
function AllocateMyBigClass()
{
$before = memory_get_usage();
$ret = new MyBigClass;
$after = memory_get_usage();
$ret->allocatedSize = ($after - $before);
return $ret;
}
在未来的任何时候,您都可以检查allocatedSize 以查看该对象在分配时有多大。但是,如果您在分配后添加它,则allocatedSize 将不再准确。
关于php - 在 PHP 中获取对象的内存大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351855/