2011-09-17 14 views
1

の変数のサイズ(KB)は、変数(文字列、配列、大部分は配列)のサイズ(KB)を計算/推定できます。 memcacheの内部にデータを格納し、memcache内でデータがどれくらいのメモリ容量を占めるかを知りたいとします。PHPの変数

答えて

4

私はPHPのmemcache実装がmemcachedに格納するときにserializeを使用すると信じています。あなたは、単にserialize出力をすることができますし、それはサイズですチェック:あなたは、データが圧縮されますかどうかを示すフラグ(MEMCACHE_COMPRESSED)がありますMemcacheのを使用している場合

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

を覚えておいてください。したがって、データが圧縮されている場合は、サイズが変わることがあります。 – santiagobasulto

+0

右、PHPのシリアル化の代わりにjsonのシリアル化を使用する 'HAVE_JSON'もあります。残念ながら、私はどの圧縮が使われているのかわかりませんが(gzipと仮定します)、結果のサイズを推測するのが難しくなります。 – six8

+0

"MEMCACHE_COMPRESSEDを使用して圧縮されたアイテムを保存する(zlibを使用する)"これは大丈夫ですが、あまりにも確実です;) – santiagobasulto