3

我试图找出 php 中变量的大小。

我需要这样做的原因是因为如果它超过 1mb,我需要使用不同形式的缓存而不是 memcache,因为 memcache 的限制为 1mb。

我正在使用以下内容:

 $start_memory = memory_get_usage();
 $this->results= $dataReader->readAll();
 $this->end_memory = memory_get_usage() - $start_memory;

结果返回为 50mb,这是非常不准确的。我也查看了 str 长度,但数据是一个数组。有人可以让我知道在 php.ini 中检测变量大小的最准确方法吗?

4

1 回答 1

2

您可以使用MultipartCache它是一个简单的类,它扩展了 memcache 来帮助您自动拆分数组或字符串

简单测试

$cache = new Mcache\Main();
$cache->addserver("127.0.0.1");  // Local memecache server

$cache->set($key, file_get_contents("large_image.jpg"));

header("Content-Type: image/jpeg");
echo $cache->get($key); // large image for cache 

如果您只对数据的大小感兴趣,那么

$data = serialize($this->results);
echo strlen($data) . " bytes";
于 2013-06-01T18:22:51.057 回答