[Seasar-user:3929] Re: S2Container-2.4.0-beta-3 リリース

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 6月 22日 (木) 01:30:33 JST


小林 (koichik) です.

Date:    Thu, 22 Jun 2006 00:26:03 +0900
From:    羽生 章洋 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:3927] Re: S2Container-2.4.0-beta-3 リリース

> > 測定結果をポストされた理由がよくわからないのですが...
> 
> お〜い、こりゃこりゃこりゃ(^^;;
> コミュニケーションしてねm(__)m

うーみゅ,まこたんにも「ひどっ」とか書かれたし...
そんなにひどいことを書いた自覚はないのですが (今もないけど)
とりあえずごめんなさい>小野さん

んとですね,Seasar-user:3920 でパフォーマンス測定の結果が
示されているわけですが,それが何を示しているのかが
分からないのですよ.
例えば,「この部分が遅くて問題だから改善して欲しい」とか,
そういうことなら分かるのですが,そういう要望は書かれて
いないわけです.

もちろん,比較の内容から判断して同期を減らすことで
パフォーマンスを改善できることを示しているとは思うのですが,
それがどの程度意味のある改善なのかが見えないのです.

つまり,getComponent() がアプリケーション全体の
パフォーマンスに関してボトルネックになっていて,それは
同期が原因だ,ということを示すようなものなら有意義なのですが,
そういう風には見えないわけです.

例えば,

> <S2Containerがノーマルの場合>
> 10000回の取得を  1スレッド = 1
>  1000回の取得を 10スレッド = 3.31
>   100回の取得を100スレッド = 3.78

この getComponent() の処理時間がアプリケーション全体の
処理時間のどのくらいを占めているのかが重要なファクター
なのですが,それが示されていません.

小野さんが前提にしているのは Web アプリのようですが,
1 つのリクエストを処理する時間全体に対して S2 コンテナが
消費する時間がどの程度なのかをまず確認すべきではないでしょうか?

例えば,アプリ全体の処理時間が 100ms で,そのうち S2 コンテナが
消費する時間が 3.78ms だとします.
それが同期を減らすことで 2.15ms になったとしても,全体では
100ms が 98.37ms に,1% ほど改善するにすぎません.
その 1% あまりがどれくらい重要でしょうか?
そもそも目を向けるべきポイントは他にあるのではないか?
ということを考えてしまうわけです.

パフォーマンスチューニングの基本はボトルネックを見つけることです.
ボトルネックでもないところを闇雲にチューニングしても効果は
期待できないケースが多いです.

そんなわけで (どんなわけで?),まずはアプリケーション全体で
処理時間の多くを占めるのはどこなのかを見いだす方が先決ではないかと
思いますが,いかがでしょうか?



-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内