PHP:以千字节为单位测量对象/数组的大小?

2022-08-30 19:57:44
  • 以字节/千字节为单位测量PHP对象实际大小的适当方法是什么?

询问原因:
我正在利用 memcached 在我的 Web 应用程序中缓存缓存存储,这些缓存将由非技术客户使用。但是,由于memcached的最大大小为1mb ,因此从一开始就设置一个函数会很棒,我可以用来测量所选对象/数组/数据集的大小,以防止它们变大。

请注意,我只计划将其用作警报/诊断工具,以跟踪缓存性能和存储可能性。我假设计算每个memcached集/添加调用的速度会减慢一点速度。

我也知道在memcached中存储大数据集会消除在RAM中存储东西的整个想法,这就是为什么我需要事先知道以防止客户构建大数据集的原因。

多谢


答案 1

好吧,由于Memcached不存储原始对象(它实际上存储serialiezd版本),因此您可以这样做:

$serializedFoo = serialize($foo);
if (function_exists('mb_strlen')) {
    $size = mb_strlen($serializedFoo, '8bit');
} else {
    $size = strlen($serializedFoo);
}

答案 2

另一种简单的方法将数组的内容放入文件,然后检查文件大小。

$str = print_r($array, true);
file_put_contents('data.txt', $str);
$size = filesize('data.txt');

推荐