衝撃的な数字が語る: TP フレームワーク、php、html、php 静的ページの実行効率分析と比較! !
最近、高性能チャットサーバーを構築しようと考えていますが、Thinkphp3.2 はどれほど効率的でしょうか?つまり、フレームワークはどの程度効率的かということです。それでテストしてください。
タスク: データベースから 44 個のデータを読み取ります。
1. Tp3.2 home->controler->IndexControler->index()
$m=M('login_log');
$login_log_list=$m->select() ;
$this->assign('login_log_list',$login_log_list);
$this->display('index');
テンプレート:index.html:
2. test2.php (コアコード:)
$result=mysql_query('select * from login_log');
while ($item=mysql_fetch_assoc($result))
3 , test2.html:はtest2.phpの出力結果です。
4. test1.php: test2.html のサフィックスが php に変更され、その他は変更されません。
ツール: ab.exe を使用して、1000 接続、100 同時実行を実行します。コンピューター: ASUS ノートブック CPU: u3400 6G メモリ。 Win7。すべてのプログラムはローカルで実行されます。
結果は次のとおりです:
結果: http://chenrenqi.blog.sohu.com/303865454.html
ここではチャートはサポートされていません。上のリンクを参照してください。
データベースへのネイティブ PHP 接続は TP3.2 より 11 倍高速であることがわかります。時間は主に、ファイルの読み込み、クラスの作成、テンプレートの解析に費やされます。
静的ファイルは、PHP 接続データベース ファイルよりも約 21 倍長くなります。サフィックス変更後のPHPの約4倍です。
実際には、php ファイルをご存知でしょう。つまり、http 接続には複数のデータベース接続が必要になる場合があり、HTML の実際の速度は PHP よりも 30 倍以上速い場合がありますが、これはごく普通のことです。
------解決策のアイデア----------------------
投稿に返信 · ·とにかく言っておきます...フレームワークのものは多くの無駄なものをインスタンス化する必要がありますが、小さな機能を実装するだけです。MVCフレームワークはページが更新されるたびに最初から最後までインスタンス化する必要があるため... ·高さの追求。パフォーマンス... 従来のプロセス記述方法の方が新鮮かもしれません... 開発効率とメンテナンスの問題に関して... 元の投稿者はそれを考慮しています...
----- - ソリューションのアイデア --------------------------
共有してくれてありがとう。ただし、PHP 開発者であれば、少し一般的なことを知っている必要があります。センスではこれを理解できませんし、ましてやそれを高性能アプリケーションを開発することはできません。
------解決策のアイデア----------------------
このテストは不公平だと思いますフレームワークに成熟したキャッシュ メカニズムをレイアウトするのはどうでしょうか?
TP はどこで時間を過ごしましたか?ディスクIO?オブジェクトをインスタンス化してメモリに書き込みますか?テンプレートは通常のマッチングをレンダリングしますか?
これらはすべてキャッシュによって解決できます
-----ソリューションのアイデア----------------------
ははは、これを投稿した投稿者は共有の精神に基づいていると思います、くそー、荒らしめ!元の投稿者をサポートします
-----ソリューション アイデア----------------------
本物のプログラマー、すべてネイティブに記述する必要があります。
フレームワークが存在する理由は、フレームワークによって開発の速度が大幅に向上するためです。プロジェクトを迅速に構築します。
しかし、フレームワークのロジックと矛盾する一部の Web サイトでは、ネイティブの Web サイトを使用した方が速いと思います。
たとえば、TP はフォーラムのために生まれました。ポータル ページを作成したい場合は、Sina と同様のホームページ効果を実現する必要があります。
現時点で TP を使用すると、死ぬほど疲れ果ててしまう可能性があります。
------解決策のアイデア----------------------
この表現を見てください I私も満足しています。
私は 1% に属します。パフォーマンスのボトルネックは、多くのファイルがデプロイされている MVC のディスク IO にあります。同時実行性が高いと非常に不快です。問題を解決するためのオペコードキャッシュ。このテストの結果も大きく変わります。
16 階で言及されている 10 個ほどのリクエストされた単一ページがどのフレームワークに属しているかに非常に興味があります...
さらに、フレームワークは開発モードといくつかの共通機能のカプセル化のみを提供し、フォーラムに使用されます。それとも Sina を使用しますか? これらのビジネス ロジックには違いがありますか?おそらく私はこれまでにやったことがなく、本当に理解していないと思います。時間をかけて勉強していただければ幸いです
ネイティブ PHP はフレームワークよりも高速であるはずですが、大幅に速度を下げることができます。最適化手法によるこの差
開発モードよりも数十分の一秒のページ速度の違いが重要なら、誰もがアセンブリを使用して Web を構築するべきです~
私は経験が少ないですが、 xu 氏にも反論したいと思います。キャッシュに自信がないわけではありませんが、高頻度の反復作業の消費を最小限に抑えることができます
単純なニュース記事の場合、書き込み操作は一生に 1 回しか行われない可能性がありますが、読み取り操作は毎分実行されます。サーバー ソフトウェアに毎回スクリプトを実行してからデータベースに何かを要求する必要はありません。静的ファイルを直接使用した方がはるかに高速です。最適化では、ハードディスク - メモリ - ネットワーク カード バッファという本来の中間ステップも省略できます。
複雑なフィルタリング条件を備えたいくつかの推奨ニュースもあります。データベースに毎回計算させる必要はありません
もちろん、過剰なキャッシュは明らかに不必要です
-----ソリューションのアイデア------ ---------------
実際、私は写真を転送するためにここにいます。同時実行性の高いものについては、他の言語に切り替えることを検討してください。効率にも注意が必要ですが、効率を求めてスプレーする必要はありません。
------ソリューションのアイデア----------------------
はい、TP はフォーラム コミュニティに適しています、小規模な情報 Web サイトの中には大規模な Web サイトには適していないものもあります。TP が大きなプロジェクトを行うとは決して期待していません
------ソリューションのアイデア------ -------
時間があれば、yii の効率をテストできます
-----ソリューションのアイデア----------- - ----------
フレームワークも使われていますが、使いにくいところもあります。
例:ページネーション後に検索条件を取得し続ける方法。複数条件クエリ、TP 複数のデータを取得するには何回かループする必要があり、取得できない場合があります。
------ソリューションのアイデア----------------------
チャット ルームの場合、node.js は次のことができます。ちょっと待ってください