3

PHPで変数の大きさを知りたいです。

これを行う必要があるのは、memcache の制限が 1mb であるため、1mb を超える場合は、memcache ではなく別の形式のキャッシュを使用する必要があるためです。

私は以下を使用しています:

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

結果は非常に不正確な 50 MB として返されます。str の長さも調べましたが、データは配列です。PHPで変数のサイズを検出する最も正確な方法を教えてください。

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 に答える