[PHP-users 8707] Re: PHP の拡張性?
Youichi Iwakiri
php-users@php.gr.jp
Wed, 17 Jul 2002 12:37:55 +0900
いわきりです
Yasuo Ohgaki wrote in <3D34CAAD.7020502@ohgaki.net> :
># 覚えていませんが、dl()されたモジュールはシャットダ
># ウン後にアンロードされたと思います。(この「シャット
># ダウン」と言うのはリクエストシャットダウンの事で、サー
># バーをシャットダウンの事ではありません)
モジュール呼び出しの順序としては、
dl()を使った場合は、
0.スクリプトの実行
1.dl()ステップに達した時点で、
1.1.モジュール初期化(MINIT)
1.2.リクエスト初期化(RINIT)
2.スクリプトの終了
2.1.リクエスト解放(RSHUTDOWN)
2.2.モジュール解放(MSHUTDOWN)
という流れだったと思います。
# MINIT : Module INITialize
MSHUTDOWN : Module SHUTDOWN
RINIT : Request INITialize
RSHUTDOWN : Request SHUTDOWN
>モジュールを追加するオーバーヘッドは大まかに言うと
0) apache起動
>1) コードセグメントメモリ消費量の増加(普通無視できる)
>2) データセグメントメモリ消費量の増加(普通無視できる)
>3) モジュール初期化(普通無視できる)
<リクエストループ>
>4) リクエスト初期化(オーバーヘッドが大きいモジュールは無視できない)
5) スクリプト実行
>6) リクエスト解放(普通はfree()等のコードのみで無視できる)
</リクエストループ>
7) モジュール解放(普通無視できる)
8) apache終了
>dl()を使うと
0) apache起動
>1) コードセグメントメモリ消費量の増加(staticリンク, extension=foo.soよりは少ない)
>2) データセグメントメモリ消費量の増加(staticリンク, extension=foo.soよりは少ない)
>3) モジュール初期化(普通無視できる)
<リクエストループ>
4) スクリプト実行
5) モジュールロード(無視できない。かなり大きいオーバーヘッド)
6) モジュール初期化(毎回実行、初期化コードのサイズはモジュールによってまちまち)
7) リクエスト初期化(オーバーヘッドが大きいモジュールは無視できない)
8) スクリプト継続実行
9) スクリプト終了
10) リクエスト解放(普通はfree()等のコードのみで無視できる)
11) モジュール解放(普通はfree()等のコードのみで無視できる)
</リクエストループ>
8) apache終了
たしかこんなです。4) - 11)にかかる時間が気にならなければ
dl()の使用もよろしいかと思います。
# マルチスレッドサーバは使ってないのでコメントは控えます。
--
Youichi Iwakiri