php - 在 PHP 中获取对象的内存大小?

标签 php oop object size

有一种方法可以获取 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/

相关文章:

php - 在 PHP 中调用 super 方法

java - 如何使用泛型实例化 java 中的类实例?

Javascript: "Undefined"不是对象

javascript - 谷歌地图,在标记信息窗口中显示mysql信息

javascript - 在同一页面中的表单之间传递值

c++ - 什么可以实例化?

javascript - 使用函数作为对象属性

php - 在异常构造函数中调用方法是可以接受的做法吗?

php - 防止在 Yii 中加载特定的 CSS 文件

java - 如何从一组对象生成组合?