[PHP-users 10171] Re: リソース変数の開放のタイミング

Yasuo Ohgaki php-users@php.gr.jp
Tue, 17 Sep 2002 18:24:50 +0900


大垣です。

長くて、斜め読みですがすぐ判るところだけコメントします。

桝形 誠二 wrote:
> PHPのリソース変数の開放のタイミングについて色々と調べているの
> ですが、少々分からない事があり質問させてもらいます。
> 
> 明示的にmysql_close処理を行わない方が、若干ですが処理速度が
> 向上したという結果から、実際にソースコードを確認してみました。

リソースが削除されるのは参照数が0になった時、またはスクリプトが
終了しリソースが必要なくなった時です。

# デストラクタというより、ガーベッジコレクタと言った方が
# よいです。

明示的にリソースを解放しない場合はHTTPコネクション切断後、つまり
リクエストシャットダウン時に解放されます。
明示的にリソースを解放した場合、HTTPコネクションがある状態、つま
りユーザーにページを送っている最中にリソースを解放する事になります。

このため、PHPプログラミング(とくにWebプログラミング)ではリソース
は明示的に解放しない方が良いです。例外は、多くのメモリなどを消費する
場合で、スクリプト実行中に解放した方が良い場合などです。

--
Yasuo Ohgaki