我试图弄清楚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中检测变量大小的最准确方法。
答案 0 :(得分:2)
你可以使用MultipartCache这是一个扩展内存缓存的简单类,可以帮助你自动拆分数组或字符串
简单测试
$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";