dポイントプレゼントキャンペーン実施中!

imagedestroyしないとどうなる?

PHPで画像を処理する時に、imagecreate等でメモリに画像を保存しますが、
その後、imagedestroyで開放しないとどうなるのでしょうか?
メモリを食いつぶしてサーバが落ちたりするのでしょうか。

食いつぶすとして、例えば失敗して一度 imagedestroy をしなかったとすると、
その分のメモリはサーバを立ち上げなおしでもしないと、永遠にメモリに
残っているのでしょうか。

PHPはApacheのモジュールとして動作している事を想定しています。

A 回答 (1件)

mod_phpでメモリが足りなくなった場合はメモリアロケートに失敗してFatal Errorを吐いてプロセスが中断されます。


php.iniのmemory_limitの値以上のメモリを利用しようとする場合も同じです。
エラーが起きなかったとして、通常はプロセスの終焉とともに解放されるはずです。
画像など大きなサイズのものを利用する時には明示的に解放する為にimagedestroyやunsetで解放するのが良いかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
メモリにゴミとして残ってしまうのかと心配しておりました。
「プロセスが中断されます。」これってPHPのプロセスと言う事で・・・すかね。
Apacheのプロセス?
質問を締め切っちゃいました。

お礼日時:2010/03/17 14:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!