検索
ホームページバックエンド開発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: で表示します。 St e 2, test2.php (コアコード:)
$ 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 までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール