[s2container-php5:138] Re: Daoクラスが大量にあった場合にパフォーマンスが悪いのです

masami sakamaki [E-MAIL ADDRESS DELETED]
2008年 7月 15日 (火) 11:03:05 JST


黒田様

早速の回答ありがとうございます。
早速見させていただきました。このキャッシュ実に良いですね〜。ぜひ公開してほし
いです。
Trunkに入れることができないのであれば、派生バージョンとしてでもよいので、公
開して
いただけませんか?!。

それとAPCはやろうと持っております。が、APCを使わなくてもある程度のパフォーマ
ンスを出そうと
思っております(したいという気持ちが。。。)

今回いろいろやってみて移植の難しさを体験しました。

では、公開の件、ご一考いただければ幸いです。


-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of KURODA Eishi
Sent: Monday, July 14, 2008 8:03 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [s2container-php5:137] Re: Daoクラスが大量にあった場合にパフォーマ
ンスが悪いのです

こんにちは、黒田です。

私もパフォーマンスについては苦労しています。
とりあえず、S2DaoでBeanMetaDataをリクエスト毎に毎回作るのに時間が掛かってい
たので、
個人的にBeanMetaDataをキャッシュするような機構を作り、最初の一回だけ生成する
ようにしたのですが
それで少し改善しました。その時の詳細は下記です。
http://d.hatena.ne.jp/e-kuroda/20080311
で、それをtrunkに反映させようと思っていたのですが、そのままになってま
す・・・。
ちなみにその後、APCを使うようしたりと更に高速化してます。

しかし、S2Dao.PHP5の方もさることながら、
根本的には、コンテナに大量のコンポーネントを詰め込むと、
リクエストの度にS2Containerのコンテナ組み立てに物凄く時間が掛かるんですよ
ね。
これがどうにも出来ず、いつも必要最小限のコンポーネントだけを使うように苦労し
ています。

S2Container.PHP5は基本的にJavaからのポーティングで、PHP用の考慮はそんなにさ
れていないと思われるので、
それだとパフォーマンス的にかなり厳しいのかなと思います。
コンテナへの登録/取得機能がシンプルに削ぎ落とされた高速動作モードがあったり
すると良いなあ、
などと思っているのですが。
ちゃんとしたことは分からないですが、生成されたコンテナを見ていると、
取得を柔軟にするために、登録時に殆ど無駄なキーで大量に登録しているような感じ
もするので、
機能を削ればもっと速くなりそうな気がします。
私は、正規表現をstr〜系の関数に置き換えたり、
沢山あるfor文をforeachに置き換えたり(少なくともPHP5.1以降だとforよりforeach
の方が結構速いので)と、
小手先の変更を施して使っていますが、やはり遅いです・・・。
上手くキャッシュ使えないかとも考えたのですが、難しそうでした。

黒田

On Mon, 14 Jul 2008 17:23:29 +0900
"masami sakamaki" <[E-MAIL ADDRESS DELETED]> wrote:

> お世話になります。masasと申します。
>
> Daoクラスが大量になった場合にパフォーマンスが悪く困っております。
> ご存じの方がいれば教えていただければと思い、メールさせていただき
> ました。
>
> Daoクラスが大量(356個)にありすべてをDiconファイルに記述します。
> この状態で
> $container = S2ContainerFactory::create('app.dicon');
> とすると1.5秒前後かかります。これは仕方のないこのなのでしょうか?
> Daoクラスを100個にした場合でも0.7秒前後かかっております。
>
> 何か回避する方法などがありましたら、教えていただければ幸いです。
>
> よろしくお願いいたします。
>
>
>
>
> _______________________________________________
> S2Container-PHP5 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/s2container-php5


_______________________________________________
S2Container-PHP5 mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/s2container-php5





S2Container-PHP5 メーリングリストの案内