[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Memory-MemoryManager.xml
blob9300b64861e5621176d7ed6c92ff1f62ef4f309b
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20827 -->
4 <sect1 id="zend.memory.memory-manager">
5     <title>メモリマネージャ</title>
7     <sect2 id="zend.memory.memory-manager.creation">
9         <title>メモリマネージャの作成</title>
11         <para>
12             新しいメモリマネージャ
13             (<classname>Zend_Memory_Manager</classname> オブジェクト) を作成するには、
14             <methodname>Zend_Memory::factory($backendName [, $backendOprions])</methodname>
15             メソッドを使用します。
16         </para>
18         <para>
19             最初の引数 <code>$backendName</code> は文字列で、
20             <classname>Zend_Cache</classname> がサポートするバックエンド実装のいずれかの名前を指定します。
21         </para>
23         <para>
24             二番目の引数 <code>$backendOptions</code> は省略可能で、
25             バックエンドに渡すオプションの配列を指定します。
26         </para>
28         <programlisting language="php"><![CDATA[
29 $backendOptions = array(
30     'cache_dir' => './tmp/' // スワップしたメモリブロックを配置するディレクトリ
33 $memoryManager = Zend_Memory::factory('File', $backendOptions);
34 ]]></programlisting>
36         <para>
37             <classname>Zend_Memory</classname> は <link linkend="zend.cache.backends">Zend_Cache のバックエンド</link>
38             を使用してデータを保存します。
39         </para>
41         <para>
42             標準の <classname>Zend_Cache</classname> のバックエンドに加え、特別な名前
43             '<code>None</code>' をバックエンド名として使用することもできます。
45             <programlisting language="php"><![CDATA[
46 $memoryManager = Zend_Memory::factory('None');
47 ]]></programlisting>
48         </para>
50         <para>
51             バックエンド名に '<code>None</code>' を使用すると、
52             メモリマネージャは決してメモリブロックをスワップしなくなります。
53             メモリの制限がない場合、あるいはオブジェクトのサイズが
54             決してメモリの制限に達しない場合などに有用です。
55         </para>
57         <para>
58             '<code>None</code>' バックエンドには何もオプションを指定する必要がありません。
59         </para>
61     </sect2>
63     <sect2 id="zend.memory.memory-manager.objects-management">
65         <title>メモリオブジェクトの管理</title>
67         <para>
68             この節では、管理しているメモリ内でのオブジェクトの作成や破棄の方法、
69             そしてメモリマネージャの挙動を設定する方法を説明します。
70         </para>
72         <sect3 id="zend.memory.memory-manager.objects-management.movable">
74             <title>移動可能なオブジェクトの作成</title>
76             <para>
77                 移動可能なオブジェクト (スワップされる可能性のあるオブジェクト)
78                 を作成するには、<methodname>Zend_Memory_Manager::create([$data])</methodname>
79                 メソッドを使用します。
80                 <programlisting language="php"><![CDATA[
81 $memObject = $memoryManager->create($data);
82 ]]></programlisting>
84             </para>
86             <para>
87                 引数 <code>$data</code> は省略可能で、
88                 オブジェクトの値を初期化するために使用します。
89                 引数 <code>$data</code> を省略した場合は、値は空の文字列となります。
90             </para>
92         </sect3>
94         <sect3 id="zend.memory.memory-manager.objects-management.locked">
96             <title>ロックされたオブジェクトの作成</title>
98             <para>
99                 ロックされたオブジェクト (スワップされないオブジェクト)
100                 を作成するには、<methodname>Zend_Memory_Manager::createLocked([$data])</methodname>
101                 メソッドを使用します。
102                 <programlisting language="php"><![CDATA[
103 $memObject = $memoryManager->createLocked($data);
104 ]]></programlisting>
105             </para>
107             <para>
108                 引数 <code>$data</code> は省略可能で、
109                 オブジェクトの値を初期化するために使用します。
110                 引数 <code>$data</code> を省略した場合は、値は空の文字列となります。
111             </para>
113         </sect3>
115         <sect3 id="zend.memory.memory-manager.objects-management.destruction">
117             <title>オブジェクトの破棄</title>
119             <para>
120                 メモリオブジェクトは、それがスコープの外に出た際に
121                 自動的に破棄され、メモリから削除されます。
123                 <programlisting language="php"><![CDATA[
124 function foo()
126     global $memoryManager, $memList;
128     ...
130     $memObject1 = $memoryManager->create($data1);
131     $memObject2 = $memoryManager->create($data2);
132     $memObject3 = $memoryManager->create($data3);
134     ...
136     $memList[] = $memObject3;
138     ...
140     unset($memObject2); // $memObject2 はここで破棄されます
142     ...
143     // $memObject1 はここで破棄されますが、
144     // $memObject3 オブジェクトはまだ $memList に参照されており、
145     // 破棄されていません
147 ]]></programlisting>
148             </para>
150             <para>
151                 これは、移動可能なオブジェクトとロックされたオブジェクトの
152                 どちらにもあてはまります。
153             </para>
155         </sect3>
157     </sect2>
159     <sect2 id="zend.memory.memory-manager.settings">
161         <title>メモリオブジェクトの設定</title>
163         <sect3 id="zend.memory.memory-manager.settings.memory-limit">
165             <title>メモリの制限</title>
167             <para>
168                 メモリの制限とは、移動可能なオブジェクトを読み込む際に
169                 使用できるバイト数のことです。
170             </para>
172             <para>
173                 オブジェクトを読み込んだり作成したりすることで
174                 この制限をこえてしまう場合は、
175                 メモリマネージャは他のオブジェクトのどれかをスワップします。
176             </para>
178             <para>
179                 メモリの制限を取得あるいは設定するには、
180                 <methodname>getMemoryLimit()</methodname> メソッドおよび <methodname>setMemoryLimit($newLimit)</methodname>
181                 メソッドを使用します。
182                 <programlisting language="php"><![CDATA[
183 $oldLimit = $memoryManager->getMemoryLimit();  // メモリの制限バイト数を取得します
184 $memoryManager->setMemoryLimit($newLimit);     // メモリの制限バイト数を設定します
185 ]]></programlisting>
186             </para>
188             <para>
189                 メモリの制限に負の値を設定すると、'制限なし' を意味します。
190             </para>
192             <para>
193                 デフォルト値は、php.ini の '<code>memory_limit</code>'
194                 の値の三分の二となります。もし php.ini で
195                 '<code>memory_limit</code>' が設定されていない場合は、デフォルト値は
196                 '制限なし' (-1) となります。
197             </para>
199         </sect3>
201         <sect3 id="zend.memory.memory-manager.settings.min-size">
203             <title>MinSize</title>
205             <para>
206                 MinSize は、メモリマネージャがスワップの対象とするメモリオブジェクトの最小サイズです。
207                 メモリマネージャは、この値より小さなサイズのオブジェクトはスワップしません。
208                 これにより、スワップや読み込みの回数が莫大なものになることを防ぎます。
209             </para>
211             <para>
212                 最小サイズを取得あるいは設定するには、
213                 <methodname>getMinSize()</methodname> メソッドおよび <methodname>setMinSize($newSize)</methodname>
214                 メソッドを使用します。
215                 <programlisting language="php"><![CDATA[
216 $oldMinSize = $memoryManager->getMinSize();  // MinSize をバイト数で取得します
217 $memoryManager->setMinSize($newSize);        // MinSize をバイト数で設定します
218 ]]></programlisting>
219             </para>
221             <para>
222                 デフォルト値は 16KB (16384 バイト) です。
223             </para>
225         </sect3>
227     </sect2>
229 </sect1>