Memory manager

This class encapsulates memory menagement operations, when PHP works in limited memory mode.

category Zend
package Zend_Memory
copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
license New BSD License

 Methods

Memory manager constructor

__construct(\Zend_Cache_Backend $backend = null

If backend is not specified, then memory objects are never swapped

Parameters

$backend

\Zend_Cache_Backend

Object destructor

__destruct() 

Clean up backend storage

Create new Zend_Memory value container

create(string $value = '') : \Zend_Memory_Container_Interface

Parameters

$value

string

Exceptions

\Zend_Memory_Exception

Returns

\Zend_Memory_Container_Interface

Create new Zend_Memory value container, which has value always locked in memory

createLocked(string $value = '') : \Zend_Memory_Container_Interface

Parameters

$value

string

Exceptions

\Zend_Memory_Exception

Returns

\Zend_Memory_Container_Interface

Get memory grow limit

getMemoryLimit() : integer

Returns

integer

Get minimum size of values, which may be swapped

getMinSize() : integer

Returns

integer

Set memory grow limit

setMemoryLimit(integer $newLimit) 

Parameters

$newLimit

integer

Exceptions

\Zend_Exception

Set minimum size of values, which may be swapped

setMinSize(integer $newSize) 

Parameters

$newSize

integer

Commit modified object and put it back to the loaded objects list

_commit() 

Create new Zend_Memory object

_create(string $value, boolean $locked) : \Zend_Memory_Container_Interface

Parameters

$value

string

$locked

boolean

Exceptions

\Zend_Memory_Exception

Returns

\Zend_Memory_Container_Interface

This function is intended to generate unique id, used by memory manager

_generateMemManagerId() 

Swap object data to disk Actualy swaps data or only unloads it from memory, if object is not changed since last swap

_swap(\Zend_Memory_Container_Movable $container, integer $id) 

Parameters

$container

\Zend_Memory_Container_Movable

$id

integer

Check and swap objects if necessary

_swapCheck() 

Exceptions

\Zend_MemoryException

 Properties

 

Object storage backend

$_backend : \Zend_Cache_Backend_Interface

Default

null
 

Last modified object

$_lastModified : \Zend_Memory_Container_Movable

Default

null

It's used to reduce number of calls necessary to trace objects' modifications Modification is not processed by memory manager until we do not switch to another object. So we have to trace only first object modification and do nothing for others

 

Unique memory manager id

$_managerId : integer

Default

 

Memory grow limit.

$_memoryLimit : integer

Default

-1

Default value is 2/3 of memory_limit php.ini variable Negative value means no limit

 

Overall size of memory, used by values

$_memorySize : integer

Default

0
 

Minimum value size to be swapped.

$_minSize : integer

Default

16384

Default value is 16K Negative value means that memory objects are never swapped

 

Id for next Zend_Memory object

$_nextId : integer

Default

0
 

List of object sizes.

$_sizes : array

Default

array()

This list is used to calculate modification of object sizes

array( => , ...)

 

Tags array, used by backend to categorize stored values

$_tags : array

Default

 

List of candidates to unload

$_unloadCandidates : array

Default

array()

It also represents objects access history. Last accessed objects are moved to the end of array

array(

=> , ... )