2011-09-17 33 views
1

是否可以计算/估计变量(字符串,数组,但大部分是数组)的大小(以KB为单位)。发生的情况是,我们在memcache中存储了一些数据,并且我们想知道数据在memcache内需要占用多少内存空间。php变量的大小(以KB为单位)

回答

4

我相信PHP的memcache实现在存储到memcached时使用serialize。你可以简单地serialize输出,并检查它的大小:

<?php 
$data = array('foo' => 'bar'); 
$serialized_data = serialize($data); 
$size = strlen($serialized_data); 
print($size * 8/1000); 
?> 
+0

请记住,如果你使用的Memcache有指示,如果数据将被压缩的标志(MEMCACHE_COMPRESSED)。所以,如果数据被压缩,那么大小可能会改变。 – santiagobasulto

+0

对,还有'HAVE_JSON',它会使用json序列化而不是php序列化。不幸的是,我不知道使用了什么压缩(但我假设gzip),这样只会让猜测结果的大小变得更难。 “ – six8

+0

”使用MEMCACHE_COMPRESSED存储压缩的项目(使用zlib)“虽然确实太好了,但确实太多了:) – santiagobasulto

相关问题