ホームページ >バックエンド開発 >PHPチュートリアル >衝撃的な数字が語る: TP フレームワーク、php、html、php 静的ページの実行効率の分析と比較
最近、高性能チャットサーバーを構築しようと考えていますが、Thinkphp3.2 はどれくらい効率的なのでしょうか?つまり、フレームワークはどの程度効率的かということです。それでテストしてください。
タスク: データベースから 44 個のデータを読み取ります。
1. Tp3.2 home->controler->IndexControler->index()
$m=M('login_log');
$this->select(); ;assign('login_log_list',$login_log_list);
$this->display('index');
テンプレート:index.html:
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 倍以上速い場合がありますが、これはごく普通のことです。
ディスカッションへの返信(解決策)
企業サイトの 90% は社内 OA を備えており、同時アクセス数は多くありません。したがって、TPを使用するのはまだ良いことです。優れたパフォーマンス要件がある場合。他のものも使用できます。
php サフィックスは php パーサープロセスを開始する必要があり、コードの実行には時間がかかります
html サフィックスを php サフィックスに変更する場合も同様です。 PHP パーサーはドキュメント全体を分析し、PHP 構文コンポーネントがないことを確認しました。そのまま出力されますか
C 言語でコンパイルされた機械語命令は、アセンブリ言語のものより 30% 多くなります。しかし、当時はリソースが高価であったとしても、プログラマーは依然として C 言語を選択していました。
これはなぜですか?その理由は、C言語がその名の通り単純明快だからです
高機能チャットサーバー。 。 。 。あなたのデータは何も説明しません。
TP が苦手だと思うなら、C か JAVA を選んでください。英語ができるのと同じように、フランス語を話してください。
あなたの投稿に返信しました... 言っただけです... フレームワークでは多くの役に立たないものをインスタンス化する必要がありますが、実装するのは小さな機能だけです。MVC フレームワークは、ページが作成されるたびに最初から最後まで実行する必要があります。再度インスタンス化するので…高性能の追求…従来のプロセス記述法の方が便利かもしれない…開発効率やメンテナンスの問題に関しては…というのが筆者の考えです。
また憶測してるの?
ご存知のとおり、フレームワークは開発に高い効率をもたらします。フレームワークの作者ですら、実行効率が低いことを否定していませんphp サフィックスは php パーサープロセスを開始する必要があり、コードの実行には時間がかかります
html サフィックスを php サフィックスに変更する場合も同様です。 PHP パーサーはドキュメント全体を分析し、PHP 構文コンポーネントがないことを確認しました。そのまま出力されますか
C 言語でコンパイルされた機械語命令は、アセンブリ言語のものより 30% 多くなります。しかし、当時はリソースが高価であったとしても、プログラマーは依然として C 言語を選択していました。
これはなぜですか?その理由は、C言語はその名前の通り単純明快だからです
理解できるかどうかに関係なく、誰でも理解できるからです。パフォーマンスを理解すると、それを最適化するためのプログラミング方法が無意識のうちにわかるようになります。
共有していただきありがとうございます。ただし、これを理解できるのは、高パフォーマンスのアプリケーションを開発したい人はもちろんのこと、少し常識のある PHP 開発者だけです。
この種のテストは不公平だと思いますが、フレームワークに成熟したキャッシュ メカニズムを設定してはどうでしょうか。
TP はどこで時間を過ごしていますか?ディスクIO?オブジェクトをインスタンス化してメモリに書き込みますか?テンプレートは通常のマッチングをレンダリングしますか?
これらはすべてキャッシュを通じて実行できます
あはは、これを投稿した投稿者は共有の精神に基づいていると思います、くそー、荒らしめ!元の投稿者をサポートしてください
これはフレームワークによくある問題です。
99% の人は、パフォーマンスのボトルネックがデータベースにあると考えています。テスト結果は、パフォーマンスのボトルネックがデータベースにあることを示しています。しかし、それを変更するのは困難です。変更できる部分はデータベースに加えて、他のプログラムのボトルネックも存在することを無視しないでください。そしてその違いは非常に大きいです!
もう 1 つのポイントは、フレームワークのパフォーマンスが非常に悪いことがわかっているのであれば、なぜ変更しないのかということです。
私は現在、新しいフレームワークを作成しています。目標は、非常にシンプルで、非常に強力で、非常に高速で、非常に愚かであることです。 忽 皆無視のフロントエンド
「
」もスピードを楽しめます。
初期目標: ネイティブ PHP の半分の速度 (達成できるかどうかはわかりませんが、これが目標です)。
この表現を見ると幸せな気持ちになります
私は 1% に属します... パフォーマンスのボトルネックは主に、多数のファイルがデプロイされている MVC のディスク IO にあり、同時実行性が高い場合は非常に不快です。これを解決するには、オペコードキャッシュをオンにします。このテスト結果も大きく変わります
16 階で言及されている 10 個ほどのリクエストされた単一ページがどのフレームワークに属しているかに非常に興味があります...
さらに、フレームワークは提供するだけです開発モードといくつかの共通機能のカプセル化 (フォーラムであっても Sina であっても) これらのビジネス ロジックの違いは何ですか?たぶん、私はこれまでにやったことがなく、本当に理解していないと思います。時間をかけて詳しく学んでいただければ幸いです
ネイティブ PHP はフレームワークよりも高速であることは間違いありませんが、最適化手法によってこのギャップを大幅に減らすことができます。
ページ速度の違いがほんの数十分の一秒である場合は、開発モードよりも重要です。皆さんもアセンブリを使用して Web を構築しましょう〜
経験は浅いですが、私もキャッシュについて反論したいと思います。自信の欠如ではなく、高頻度の反復作業の消費を最小限に抑えるためです
簡単な記事 ニュースによると、書き込み操作は一生に一度しか起こらない可能性がありますが、読み取り操作は毎分実行されます。毎回サーバー ソフトウェアにスクリプトを実行してから、データベースに問い合わせる必要があります。静的ファイルは、元々はネットワークの中間段階で最適化できるようです。カードバッファも省略できます
複雑なフィルタリング条件を持つ一部のおすすめニュースについては、毎回データベースに計算させる必要はありません
もちろん、過剰なキャッシュは絶対に不要です
実は、これは変換するためのものです同時実行性の高いものについては、他の言語に切り替えることを検討してください。効率にも注意が必要ですが、効率を求めてスプレーする必要はありません。
はい、TP はフォーラム コミュニティや小規模な情報 Web サイトには適していますが、大規模な Web サイトには適していません
時間があれば、yii の効率をテストできます
それはあなたです。は無料です何もすることがないタイプ!フレームワークは迅速な開発を目的として設計されています。
急速な発展のために生まれましたが、それは速いという意味ではありません。こういった基礎研究を理解していないと、どんなに忙しくても無駄な忙しさになってしまいます。
現在高速フレームワークを開発中です。間違いなくあなたより忙しいです。
何もすることがないのはあなたです!フレームワークは迅速な開発を目的として設計されています。
私の意見では、このフレームワークは開発効率の向上以外に開発者にとって何のメリットもありません
フレームワークを 1 年間使用した後では、最も基本的な SQL さえ書けないと思います。
フレームワークのさまざまな初期化は言うまでもなく、あらゆる種類の新しいものがあります
私の意見では、このフレームワークは開発効率の向上以外に何のメリットもありません
フレームワークを 1 年間使用した後では、 , 最も基本的な SQL さえ書けないと思います
フレームワーク内のさまざまな初期化や新しいものは言うまでもありません
時間があれば、yii の効率をテストできます
当初は YII を使用してテストする予定でしたが、一昨日勉強した後、YII の作者があまりにも貧弱であると感じました。テストする必要はありません。
本物のプログラマはネイティブで書くべきです。
フレームワークが存在する理由は、フレームワークによって開発を大幅にスピードアップできるためです。プロジェクトを迅速に構築します。
しかし、フレームワークのロジックと矛盾する一部の Web サイトでは、ネイティブのものを使用した方が速いと思います。
たとえば、TP はフォーラムのために生まれました。ポータル ページを作成したい場合は、Sina と同様のホームページ効果を実現する必要があります。
現時点で TP を使用すると、死ぬほど疲れ果てる可能性があります。
これらの投稿は単なる時間の無駄と思われるため、元の投稿者には返信しません。
Web 開発の経験が 10 年以上ある人がキャッシュをこのように理解しているというのは本当に衝撃的です。
これらの投稿は単なる時間の無駄と思われるため、元の投稿者には返信しません。
例えば、複数条件クエリの後にページネーションを行った後に検索条件を取得し続ける方法は、ここで何度かループする必要があります。複数のデータを取得するのではなく、確実に取得できます!
効率が基準に達していない場合はバイナリを使用してください
初めてです。誰かが YII はひどい、TP はひどいと言っているのを聞きました。 。私にできることは、ふふ、誇示するのはやめることだけです。 ?