内存管理器创建一个内存管理器
你可以使用
第一个参数
第二个参数
$backendOptions = array(
'cache_dir' => './tmp/' // Directory where to put the swapped memory blocks
);
$memoryManager = Zend_Memory::factory('File', $backendOptions);
Zend_Memory使用Zend_Cache backends作为存储提供者.
除了标准的Zend_Cache后端之外,你可以使用特殊名称'
$memoryManager = Zend_Memory::factory('None');
如你是使用'
' 管理内存对象这一节描述了在受管理的内存中创建和销毁对象,和控制内存管理的行为的设置. 创建可移动的对象
使用
$memObject = $memoryManager->create($data);
创建锁定的对象
使用
$memObject = $memoryManager->createLocked($data);
销毁对象当内存对象超出作用域它们被从内存管理器中自动销毁和删除:
function foo()
{
global $memoryManager, $memList;
...
$memObject1 = $memoryManager->create($data1);
$memObject2 = $memoryManager->create($data2);
$memObject3 = $memoryManager->create($data3);
...
$memList[] = $memObject3;
...
unset($memObject2); // $memObject2 is destroyed here
...
// $memObject1 is destroyed here
// but $memObject3 object is still referenced by $memList and is not destroyed
}
应用和可移动对象和锁定对象. 内存管理器设置内存限制内存限制是可以被加载的可移动对象使用的一个字节数量. 如果加载和创建导致内存使用量超出了限制,内存管理将交换其他对象.
你可以使用
$oldLimit = $memoryManager->getMemoryLimit(); // Get memory limit in bytes
$memoryManager->setMemoryLimit($newLimit); // Set memory limit in bytes
负值表示'没有限制'.
默认值是在php.ini配置文件中' MinSize可以被内存管理器交换的最小对象大小.内存管理器不会交换小于此设置的对象.这是为了减少交换/加载操作的数量.
你可以分别使用
$oldMinSize = $memoryManager->getMinSize(); // Get MinSize in bytes
$memoryManager->setMinSize($newSize); // Set MinSize limit in bytes
默认的最小大小是16KB(16384字节).
|