[PHP-users 2392] Re: domxml

YAMADA php-users@php.gr.jp
Tue, 02 Oct 2001 17:02:21 +0900


山田@xmldomの質問者です

Yasuo Ohgaki さんは書きました:
>YAMADA wrote:
>> php-4.0.6 で、domxml を実験していたのですが、どうも、メモリを開放する関数が見つかりません。
>
>PHPをWebのサーバーサイドスクリプトとして利用している程度であれば、メモリ
>の開放は必要ありませんが、大きなデータを扱っていて途中で開放する必要があ
>るのであればunsetを使えば開放できます。(PHP4はReference countを使って
>ガーベッジコレクションをしているので、すぐに開放されない場合もあります)
>
>$doc = new DomDocument;
>$node = new DomNode;
>
>// do something useful
>
>unset($node);
>unset($doc);
>
>DOMXMLモジュールが普通にリソース管理をしていれば(しているはずですが)、
>unsetで開放すると思います。

ありがとうございます。さっそくやってみました。
http://search.net-newbie.com/php/ref.domxml.html  を参照しています。
というソースは、以下です。
ちょっと気軽にBBSを作って、全文をxml に保存してsablotron で形式変換する実験をしていたのですが、
Linux redhat 7.1 の top で見ていると、あいかわらず1アクセスするたびに、
 3899 nobody     9   0 49156  48M  3016 S     0.0  9.5   0:01 httpd
の httpd が10Mずつ増えてしまいます。(;_;)

ファイルに保存している xmlドキュメントは、17kbくらいなんですが。
domxml のソースをながめていたら、domxml_unlink_node()があったので、
かたっぱしからノードに適用してみたのですが、効果なさそうです。
いろいろ試してみます。
# 原因は、別にあるのかな?

--- ソース
    $new_dom = xmldoc(XMLBBS);
    $new_root = $new_dom->root();
     :
    unset($new_dom);