一定規模以上のwebサービスで、フレームワークを利用すると、オーバーヘッドにより、パフォーマンスは低下してしまうものでしょうか?

それとも、DB系がボトルネックになるので、フレームワークの採用が全体に与える影響は少ないのでしょうか?

ちなみに、PHPでオーバーヘッドのベンチマークを取ったところ、インスタンス有のクラスを作った場合、ベタ書き、関数呼び出しのみ、インスタンス無しのクラスに比べて、速度が約30%低下しました。
このようなオーバーヘッドが積み重なった場合、webサービス全体のパフォーマンスが低下するのでは、と懸念し、ご質問させて頂きました。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/08/06 00:00:07
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:KUROX No.1

回答回数3542ベストアンサー獲得回数140

ポイント35pt

■実例

http://japan.cnet.com/interview/story/0,2000055954,20088792,00.h...

GREE.jp は言語はPHP、フレームワークとして Ethnaを採用

「一定規模以上のwebサービス」にあたるでしょう

私の意見としては、一定規模であるからこそ

フレームワークを使わないと収拾がつかないし、

インスタンスをつかってオブジェクト指向で作らないと

大変かと思います。

-----------------------------------------------------

性能測定ですけど、支障がなければどんな条件・処理内容で

計測されたのでしょうか?

100リクエストとかアクセスが集中するような性能はどう

ですか?

あまりポイントには興味がなくて、性能測定結果に興味がある

ので、考察はしたいと思います。

id:tomoyuki28jp

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

「一定規模以上のwebサービス」にあたるでしょう

私の意見としては、一定規模であるからこそ

フレームワークを使わないと収拾がつかないし、

インスタンスをつかってオブジェクト指向で作らないと

大変かと思います。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

それは勿論その通りなのですが、

フレームワークはその性質上、

開発フェーズのコストを低くする代わりに、

運用フェーズのコストを高くするものである

という認識でいるのですが、

どれ程、パフォーマンスに影響を

与えるのか、というのをご質問させて

頂いたのが、今回の質問の意図でした。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

性能測定ですけど、支障がなければどんな条件・処理内容で

計測されたのでしょうか?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

これはスケールとは全く関係のないレベル

で、(1)DB接続、(2)DB情報取得、(3)DB切断

の3ステップを行う処理を、

A.ベタ書き

B.関数呼び出しのみ、

C.インスタンス有のクラス、

D.インスタンス無しのクラスで実装し、

速度を比較しました。

2007/07/30 00:43:33
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

開発フェーズのコストを低くする代わりに、

運用フェーズのコストを高くするものである

運用フェーズのコストとは何を表わすか?


正直作り捨てならばどのような書き方でも何とかなるでしょう。

運用中に何度も変更を経ることでシステムは成熟していきます。

この面でもフレームワークのメリットは生きてくると思います。

というよりまともな作りでないなら、改善もままならない。


確かにフレームワークのオーバーヘッドによる性能デメリットはあるでしょう。

しかし逆にフレームワークを使わなければどの程度の開発・運用コストが変わると思いますか?

3割程度の差であれば、その分サーバーの性能を上げるだけです。

また、今のままであれば半年程度の技術革新でその程度のスペックは吸収できるでしょう。

開発・運用両面での人的コストの方がはるかに高いと思います。

  • id:KUROX
    大体の計測結果はどうでしょうか?
    3ステップの処理を1回だと測定できないと思うので
    数回してると思うのですけどどうでしょうか?

    WEBプログラムですか?
    PHPのコンソールプログラムですか?
    DB接続にはコネクションプールをつかってますか?

    A,B,Dあまり変わらずCだけが約30%程度遅い
    という感じですか?

    Cなんですけど、インスタンスの生成を繰り返すような
    処理になってるのでしょうか?
    -------------------------------
    フレームワーク採用ということになれば、C方式ですね。
  • id:KUROX
    少人数の精鋭でつくってるならともかく、
    そうでない無理です。
    で、少人数の精鋭で作っていたら、絶対に構造設計
    しますから、その時点で独自のフレームワークが
    できます。

    実績のあるフレームワークを使わないで、
    一定規模のあるWEBシステムをべたべたコーディングで
    作れないと思いますが。

    まあ、失敗しても、誰も失敗だと思わないでしょうけど。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません