[PHP-dev 136] Re: Please test APC CVS source
Yasuo Ohgaki
php-dev@php.gr.jp
Mon, 03 Dec 2001 08:04:49 +0900
Rui Hirokawa wrote:
> 廣川です。
>
> On Sun, 02 Dec 2001 11:41:30 +0900
> Yasuo Ohgaki <yohgaki@yahoo.co.jp> wrote:
>
>
>>大垣です。
>>
>>APC (Zend Cache/Accelaratorと同等のオープンソースのモジュール)の
>>CVS版をテストして頂けないでしょうか?
>>
>>CVS版のshmdirect modeは今までのshm modeに比べて非常に早い(2から3
>>倍)のですが、複雑なclassを持つscriptではsegfaultします。テストして
>>頂き、どのようなスクリプト(短く完全なスクリプト)をそえてバグレポー
>>トして頂けると助かります。
>>
>
> ちょっと前からAPCとPHP Accerelatorを使ってテストをしています。
> APCのCVS版は最近使っていないので、時間がある時にテストしてみます。
>
> 大垣さんが問題を発見されたスクリプトコードと
> configureの設定をこちらのMLでも流して頂けるとありがたいです。
> (試してみる人も現れやすいのではないかと思います。)
確かにその通りです:)
このメールを投稿した時点ではどのラインが問題を起こすのか判っていま
せんでしたが、最近見つけたので、以下の内容をAPCリストに投稿してい
ます。--enable-debugにして複数回リロードしないと、メモリリークを確
認できないと思います。他にも問題があるかも知れません。あれば、ぜひ
教えてください。
簡単にAPCのモードについて説明しておきます。
off : APC無し
shm : share memory mode (バイトコードをShare Memに保存)
shmdirect : shared memory direct mode (直接アクセスするためshmより
早い)
mmap : memory mapped I/O mode (バイトコードをファイルに保存)
APCとPHP Accerelatorの作者は夏くらいに知合いになったようです。
shmdirect modeはPHP Accerelatorで実装されていた物と同等と思います。
== Message to APC ML ===
It seems following simple scripts cause memory leak for "shm" and
"shmdirect" mode. Memory leak can happen with user defined
functions also.
PHP 4.1.0RC CVS/APC CVS/Apache 1.3.22/Linux 2.4.4.
"--enable-debug" is used for configure script.
If you cannot reproduce these leaks, I'll look into what module is
causing this.
******* shm mode *********
<?php
function foo()
{
isset($unset_value);
}
foo();
?>
Apache Error log (shm mode)
apc_serialize.c(1931) : Freeing 0x08199EC4 (84 bytes),
script=/home/yohgaki/public_html/ bugs/apc/bug4.php
****** shmdirect mode *********
<?php isset($unset_var); ?>
Apache Error Log
apc_iface.c(396) : Freeing 0x0817AC9C (84 bytes),
script=/home/yohgaki/public_html/bugs/apc/bug5.php
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/