ホームページ  >  記事  >  バックエンド開発  >  衝撃的な数字が語る: TP フレームワーク、php、html、php 静的ページの実行効率の分析と比較

衝撃的な数字が語る: TP フレームワーク、php、html、php 静的ページの実行効率の分析と比較

WBOY
WBOYオリジナル
2016-06-23 13:47:491092ブラウズ


最近、高性能チャットサーバーを構築しようと考えていますが、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: $ Result = MySQL_QUERY ('Select*from Login_log'); L: 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 倍以上速い場合がありますが、これはごく普通のことです。





ディスカッションへの返信(解決策)

企業サイトの 90% は社内 OA を備えており、同時アクセス数は多くありません。したがって、TPを使用するのはまだ良いことです。優れたパフォーマンス要件がある場合。他のものも使用できます。

またご飯作ってるの?

ご存知のとおり、フレームワークは開発に高い効率をもたらします。フレームワークの作者ですら、実行効率が低いことを否定していません

php サフィックスは php パーサープロセスを開始する必要があり、コードの実行には時間がかかります
html サフィックスを php サフィックスに変更する場合も同様です。 PHP パーサーはドキュメント全体を分析し、PHP 構文コンポーネントがないことを確認しました。そのまま出力されますか

C 言語でコンパイルされた機械語命令は、アセンブリ言語のものより 30% 多くなります。しかし、当時はリソースが高価であったとしても、プログラマーは依然として C 言語を選択していました。
これはなぜですか?その理由は、C言語がその名の通り単純明快だからです

高機能チャットサーバー。 。 。 。あなたのデータは何も説明しません。

TP が苦手だと思うなら、C か JAVA を選んでください。英語ができるのと同じように、フランス語を話してください。

実行効率を追求する場合は、C を使用して PHP アプリケーションを開発できます。または、フレームワークが C++ 拡張機能です。

あなたの投稿に返信しました... 言っただけです... フレームワークでは多くの役に立たないものをインスタンス化する必要がありますが、実装するのは小さな機能だけです。MVC フレームワークは、ページが作成されるたびに最初から最後まで実行する必要があります。再度インスタンス化するので…高性能の追求…従来のプロセス記述法の方が便利かもしれない…開発効率やメンテナンスの問題に関しては…というのが筆者の考えです。

また憶測してるの?

ご存知のとおり、フレームワークは開発に高い効率をもたらします。フレームワークの作者ですら、実行効率が低いことを否定していません

php サフィックスは php パーサープロセスを開始する必要があり、コードの実行には時間がかかります

html サフィックスを php サフィックスに変更する場合も同様です。 PHP パーサーはドキュメント全体を分析し、PHP 構文コンポーネントがないことを確認しました。そのまま出力されますか

C 言語でコンパイルされた機械語命令は、アセンブリ言語のものより 30% 多くなります。しかし、当時はリソースが高価であったとしても、プログラマーは依然として C 言語を選択していました。
これはなぜですか?その理由は、C言語はその名前の通り単純明快だからです


理解できるかどうかに関係なく、誰でも理解できるからです。パフォーマンスを理解すると、それを最適化するためのプログラミング方法が無意識のうちにわかるようになります。

TP が苦手だと思うなら、英語ができるなら C か JAVA を選べばいいのと同じように、フランス語を話せと言わなければなりませんね。

遅いことは必ずしも悪いことではありません。ロジックに何か問題があります。私が誰かを美しいと言うのと同じように、それはその人が非常に有能であるという意味ではありません。

共有していただきありがとうございます。ただし、これを理解できるのは、高パフォーマンスのアプリケーションを開発したい人はもちろんのこと、少し常識のある PHP 開発者だけです。

この種のテストは不公平だと思いますが、フレームワークに成熟したキャッシュ メカニズムを設定してはどうでしょうか。
TP はどこで時間を過ごしていますか?ディスクIO?オブジェクトをインスタンス化してメモリに書き込みますか?テンプレートは通常のマッチングをレンダリングしますか?
これらはすべてキャッシュを通じて実行できます

あはは、これを投稿した投稿者は共有の精神に基づいていると思います、くそー、荒らしめ!元の投稿者をサポートしてください

これはフレームワークによくある問題です。

99% の人は、パフォーマンスのボトルネックがデータベースにあると考えています。テスト結果は、パフォーマンスのボトルネックがデータベースにあることを示しています。しかし、それを変更するのは困難です。変更できる部分はデータベースに加えて、他のプログラムのボトルネックも存在することを無視しないでください。そしてその違いは非常に大きいです!

もう 1 つのポイントは、フレームワークのパフォーマンスが非常に悪いことがわかっているのであれば、なぜ変更しないのかということです。

私は現在、新しいフレームワークを作成しています。目標は、非常にシンプルで、非常に強力で、非常に高速で、非常に愚かであることです。 忽 皆無視のフロントエンド


































」もスピードを楽しめます。

初期目標: ネイティブ PHP の半分の速度 (達成できるかどうかはわかりませんが、これが目標です)。


この種のテストは不公平だと思いますが、フレームワークに成熟したキャッシュ メカニズムを設定してはどうでしょうか。 🎜 TP はどこで時間を過ごしていますか?ディスクIO?オブジェクトをインスタンス化してメモリに書き込みますか?テンプレートは通常のマッチングをレンダリングしますか? 🎜 これらはすべてキャッシュを通じて行うことができます 🎜 🎜 とても幸せですね、兄弟! ^_^ 🎜 成熟したキャッシュ メカニズムについてはどうでしょうか?? 私たちはそれを何度もテストしましたが、キャッシュがどれほど効果的であるかはわかりませんでした。 🎜 🎜 🎜 🎜 この種のテストは不公平だと思いますが、フレームワークに成熟したキャッシュ メカニズムを設定してはどうでしょうか。 🎜 TP はどこで時間を過ごしていますか?ディスクIO?オブジェクトをインスタンス化してメモリに書き込みますか?テンプレートは通常のマッチングをレンダリングしますか? 🎜 これらはすべてキャッシュによって解決できます 🎜 🎜 🎜 当初、キャッシュは非常に便利だと考えていましたが、テストの結果、キャッシュはあまり効果的ではないことがわかりました。 🎜 🎜 キャッシュは同時実行性が高い場合にのみ利点を発揮します。 🎜 通常の小規模な Web サイトではキャッシュは必要ありません。 🎜 🎜 同じロジックの下では、ネイティブ コードはフレームワークよりもはるかに高速です。これは、フレームワークがロードする必要があるものが多すぎるためです。 🎜 🎜 たとえば、単純なページの場合、ネイティブ コードは出力を直接解析し、要求は 1 つだけです。しかし、フレームワークではこのページが十数個の小さな部分に分割されることが多く、リクエストの数だけでも 10 倍以上になります。 🎜 🎜 本物のプログラマはネイティブに書くべきです。 🎜 🎜 フレームワークが存在する理由は、フレームワークによって開発を大幅にスピードアップできるからです。プロジェクトを迅速に構築します。 🎜 🎜 しかし、フレームワークのロジックと矛盾する一部の Web サイトでは、ネイティブのものを使用した方が速いと思います。 🎜 🎜 たとえば、TP はフォーラムのために生まれました。ポータル ページを作成したい場合は、Sina と同様のホームページ効果を実現する必要があります。 🎜 🎜 現時点で TP を使用すると、死ぬほど疲れ果てる可能性があります。 🎜 🎜 では、私は 1% です 🎜 注: データベースは、特にファイル システム ベースの SQL を指すわけではありません (SQL にもメモリ ベースのテーブルがあります)。メモリ ベースの noSQL もあります 🎜 🎜 🎜 🎜フレームワーク自体 さて、フレームワークとは開発経験をまとめたものです。 🎜 しかし、フレームワークのためのフレームワークがあるのは良くありません 🎜 🎜 従来のマルチエントリ アーキテクチャでは、ルーティングの割り当ては Web サーバーによって完了されます 🎜 そして、一部のフレームワークは、Web サーバーが行うべき作業を強制的に実行します。いわゆる単一エントリ効果のための Web サーバー。 🎜 🎜 🎜 🎜 この文にはなぜ違法なフレーズがあるのですか? 🎜 🎜 このテストは意味がありません。 。 。 。 🎜 🎜 PHPはどんどん別物になってきており、効率もPythonに及ばない気がします 🎜 🎜 🎜 業務効率を追求する人はCを使ってPHPアプリケーションを開発することもできます。または、フレームワークが C++ 拡張機能です。 🎜 🎜 まだ完了していませんが、将来的には完了する可能性があります。 🎜

この表現を見ると幸せな気持ちになります

私は 1% に属します... パフォーマンスのボトルネックは主に、多数のファイルがデプロイされている MVC のディスク IO にあり、同時実行性が高い場合は非常に不快です。これを解決するには、オペコードキャッシュをオンにします。このテスト結果も大きく変わります
16 階で言及されている 10 個ほどのリクエストされた単一ページがどのフレームワークに属しているかに非常に興味があります...
さらに、フレームワークは提供するだけです開発モードといくつかの共通機能のカプセル化 (フォーラムであっても Sina であっても) これらのビジネス ロジックの違いは何ですか?たぶん、私はこれまでにやったことがなく、本当に理解していないと思います。時間をかけて詳しく学んでいただければ幸いです

ネイティブ PHP はフレームワークよりも高速であることは間違いありませんが、最適化手法によってこのギャップを大幅に減らすことができます。
ページ速度の違いがほんの数十分の一秒である場合は、開発モードよりも重要です。皆さんもアセンブリを使用して Web を構築しましょう〜

経験は浅いですが、私もキャッシュについて反論したいと思います。自信の欠如ではなく、高頻度の反復作業の消費を最小限に抑えるためです
簡単な記事 ニュースによると、書き込み操作は一生に一度しか起こらない可能性がありますが、読み取り操作は毎分実行されます。毎回サーバー ソフトウェアにスクリプトを実行してから、データベースに問い合わせる必要があります。静的ファイルは、元々はネットワークの中間段階で最適化できるようです。カードバッファも省略できます
複雑なフィルタリング条件を持つ一部のおすすめニュースについては、毎回データベースに計算させる必要はありません
もちろん、過剰なキャッシュは絶対に不要です


実は、これは変換するためのものです同時実行性の高いものについては、他の言語に切り替えることを検討してください。効率にも注意が必要ですが、効率を求めてスプレーする必要はありません。

はい、TP はフォーラム コミュニティや小規模な情報 Web サイトには適していますが、大規模な Web サイトには適していません

時間があれば、yii の効率をテストできます

それはあなたです。は無料です何もすることがないタイプ!フレームワークは迅速な開発を目的として設計されています。

急速な発展のために生まれましたが、それは速いという意味ではありません。こういった基礎研究を理解していないと、どんなに忙しくても無駄な忙しさになってしまいます。
現在高速フレームワークを開発中です。間違いなくあなたより忙しいです。

何もすることがないのはあなたです!フレームワークは迅速な開発を目的として設計されています。

私の意見では、このフレームワークは開発効率の向上以外に開発者にとって何のメリットもありません
フレームワークを 1 年間使用した後では、最も基本的な SQL さえ書けないと思います。
フレームワークのさまざまな初期化は言うまでもなく、あらゆる種類の新しいものがあります

私の意見では、このフレームワークは開発効率の向上以外に何のメリットもありません
フレームワークを 1 年間使用した後では、 , 最も基本的な SQL さえ書けないと思います
フレームワーク内のさまざまな初期化や新しいものは言うまでもありません

元々のやり方を知っていても、やり方を知らなければ書けません。それをするために。

時間があれば、yii の効率をテストできます

当初は YII を使用してテストする予定でしたが、一昨日勉強した後、YII の作者があまりにも貧弱であると感じました。テストする必要はありません。
YⅡさんはもともと偉い人だと思っていましたが、よく知るうちにこの業界では新参者であることが分かりました。

本物のプログラマはネイティブで書くべきです。


フレームワークが存在する理由は、フレームワークによって開発を大幅にスピードアップできるためです。プロジェクトを迅速に構築します。

しかし、フレームワークのロジックと矛盾する一部の Web サイトでは、ネイティブのものを使用した方が速いと思います。

たとえば、TP はフォーラムのために生まれました。ポータル ページを作成したい場合は、Sina と同様のホームページ効果を実現する必要があります。

現時点で TP を使用すると、死ぬほど疲れ果てる可能性があります。

レベルはかなり良いです、おそらく1年以内です。もっとプログラムしてください。進歩があるでしょう。
10 年以上の Web 開発経験を持つ人がキャッシュをこのように理解しているというのは本当に衝撃的です。

これらの投稿は単なる時間の無駄と思われるため、元の投稿者には返信しません。

Web 開発の経験が 10 年以上ある人がキャッシュをこのように理解しているというのは本当に衝撃的です。

これらの投稿は単なる時間の無駄と思われるため、元の投稿者には返信しません。

ちなみに、Web 経験が 10 以上ある人はどこで会えますか?長くても3年しかないよ。
フレームワークも使われていますが、使い方が不便なところもあります

例えば、複数条件クエリの後にページネーションを行った後に検索条件を取得し続ける方法は、ここで何度かループする必要があります。複数のデータを取得するのではなく、確実に取得できます!

チャットルームにはnode.jsを検討してください

効率が基準に達していない場合はバイナリを使用してください

初めてです。誰かが YII はひどい、TP はひどいと言っているのを聞きました。 。私にできることは、ふふ、誇示するのはやめることだけです。 ?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。