| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
基本的なメモリ管理
Zend エンジンのメモリ管理は、PHP のようなシステムにとって重要な機能として実装されています。
メモリの管理や最適化が実際にどのような動きになっているかは、ここでは取り上げません。
しかし、その機能をきちんと理解しておけば、この
この機能は重要なものだしとても便利なものではありますが、
もう一つ、副次的な機能ではあるけれども注目すべきものがあります。
それは、メモリマネージャーが、PHP のインスタンスごとのメモリ使用量のハードリミットを決める一因となっていることです。
ご存じのとおり、無限に使えるものなんてどこにもありません。
何かのコードがメモリを使い切ってしまったとしたら、おそらくそれは、Zend エンジンの
警告
コードをデプロイする前には常に valgrind を使いましょう。
例1 リークの検出の実例 ZEND_FUNCTION(leak) { long leakbytes = 3; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &leakbytes) == FAILURE) { return; } emalloc(leakbytes); } 上の例の出力は、 たとえば以下のようになります。 [Thu Oct 22 02:14:57 2009] Script: '-' /home/johannes/src/PHP_5_3/Zend/zend_builtin_functions.c(1377) : Freeing 0x088888D4 (3 bytes), script=- === Total 1 memory leaks detected ===
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「基本的なメモリ管理」をGoogle検索
|