我测试了检索 150 个文档,每个文档都有一个包含 2000 条记录的数组。
这是内存使用情况:
Memory after collection: 1584
Memory after findOne: 530936
Memory after find: 81798960
所以 findOne 使用大约 0.5MB,而查找 150 个文档使用 78MB。
有这么高的内存使用量是否正常?还是我的文档对象太大了?我只是在 2000 条记录中的每条记录中存储四个字符。
用于测试的代码:
<?php
$old = memory_get_usage();
$collection = $mongo->getMongoCollection($this->Mb);
$new = memory_get_usage();
echo "Memory after collection: " . ($new - $old) . "<br>";
$old = memory_get_usage();
$arr = $collection->findOne(array('capture' => '1367208145'));
$new = memory_get_usage();
echo "Memory after findOne: " . ($new - $old) . "<br>";
$old = memory_get_usage();
$cursor = $collection->find();
$arr = iterator_to_array($cursor);
$new = memory_get_usage();
echo "Memory after find: " . ($new - $old) . "<br>";
?>