Python WebページとPHP Webページではどちらが速いですか?[閉まっている]
-
09-06-2019 - |
質問
Python WebページとPHP Webページではどちらが速いですか?
Python (または他のフレームワーク) の速度が PHP で作成された同様の Web サイトとどのように比較されるか知っている人はいますか?
毎回起動に時間がかかるため、CGI 経由で Python ベースの Web ページを提供するのは PHP よりも遅いことはわかっています。
私は pylon を使用するのが好きで、php よりも遅い場合でも、pylon を使用するでしょう。しかし、pylon が php よりも速ければ、うまくいけば、最終的には雇用主を説得して、サイトを pylon に変換することを許可してもらえるかもしれません。
解決
両者を比較したくないようですね 言語, 、ただし 2 つを比較したいと考えています ウェブシステム.
多くの変数が関係するため、これは難しいです。
たとえば、Python Web アプリケーションは次のことを利用できます。 mod_wsgi これは、PHP が Web サーバーと通信する一般的な方法よりも高速です (Apache を使用している場合は、mod_php でも最終的に遅くなります。Apache では、マルチスレッドではなく mod_php でのみ Prefork MPM を使用できるためです) MPM はワーカーと同様です)。
コードのコンパイルの問題もあります。ご存知のとおり、Python はファイルが変更されるたびに、ファイルの実行時にジャストインタイムでバイト コード (.pyc ファイル) にコンパイルされます。したがって、Python ファイルの最初の実行後、コンパイル手順はスキップされ、Python インタープリターはプリコンパイルされた .pyc ファイルをフェッチするだけです。このため、Python には PHP よりもネイティブな利点があると主張できます。ただし、オプティマイザーとキャッシュ システムは PHP Web サイトにインストールできます (私のお気に入りは eアクセラレータ) ほぼ同じ効果があります。
一般に、一方が他方で実行できることをほぼすべて実行できるように、十分なツールが存在します。もちろん、他の人も述べているように、言語を切り替えるビジネスケースにはスピードだけではありません。現在の雇用主では oCaml で書かれたアプリを持っていますが、オリジナルの作成者が会社を退職し、他の誰もそのアプリに触れたがらなかったため、これは間違いでした。同様に、PHP Web コミュニティは Python Web コミュニティよりもはるかに大きいです。Web サイト ホスティング サービスは、Python サポートよりも PHP サポートを提供する可能性が高くなります。等
しかし、スピードに戻ります。ここでの速度の問題には多くの可動部分が含まれることを認識する必要があります。幸いなことに、これらの部分の多くは個別に最適化できるため、さまざまな方法でパフォーマンスの向上を図ることができます。
他のヒント
PHP から Python に移植するよう雇用主を説得しようとしても、特に既存のシステムでは意味がありません。それがあなたの質問で暗示されたことだと思います。
その理由は、すでに時間と労力 (そして経験) を投資して、(おそらく) 動作するシステムを持っているからです。些細なパフォーマンスの向上(あると主張しているわけではありません)を求めてこれを放棄するのは愚かであり、まともなマネージャーはそれを支持すべきではありません。
また、システムを操作する他の人や Python の経験によっては、保守性に問題が生じる可能性もあります。
PHP (>5.5) は Web サイトのスクリプティング用に最適化されているため、複雑な Web アプリケーションでは高速で信頼性が高いと思います。
ネットで見つかるベンチマークの多くは、人気の言語の方が優れていることを証明するためにのみ作成されています。ただし、X 回実行される数学的タスクで 2 つの言語を比較することはできません。実際のベンチマークには、数百のクラス/ファイルを備えた 2 つの同等のフレームワークと、一度に 100 のクライアントを実行する Web アプリケーションが必要です。
PHP と Python は、いかなる種類の切り替えも必要としないほどよく似ています。
ある言語から別の言語に切り替えることで得られるパフォーマンスの向上は、単にコードの変換にお金をかけずに (無料でコードを作成するわけではありませんよね?)、ハードウェアを追加購入するだけでは大幅に改善されます。
それはほぼ同じです。どちらかを選択する理由になるほど違いは大きくないはずです。独自の小さなベンチマークを作成して比較しようとしないでください ("hello world"
) より複雑なページを生成する実際の Web サイトを表す結果はおそらく得られないからです。
壊れていないなら直さないでください。
簡単なテストを作成するだけですが、各言語は特定の関数を使用すると他の言語よりも高速になることに留意してください。
「速い」というだけではなく、切り替えのビジネスケースを作成できる必要があります。テクノロジ B に基づいて構築されたサイトが、一定期間 (たとえば 3 年間) のメンテナンスにかかる開発時間に 20% 多くかかる場合、テクノロジ A を実行しているシステムに別の Web サーバーを追加して、パフォーマンスのギャップを埋める方がコストが安くなる可能性があります。
「テクノロジー B は優れているため、テクノロジー B に切り替えるべきです」と言っているだけです。 もっと早く!"は実際には機能しません。
Python は PHP よりもはるかに普及していないため、ホスティング、開発者、およびその他の (長期的な) メンテナンス コストを考えれば、Python がこのシナリオに適合するとしても驚きではありません。
IS 組織は、可用性が問題にならない限り、これについて深く考えないでしょう。
その場合は、レプリケーション、負荷分散、および大量の RAM を検討してください。
唯一の正しい答えは「状況による」です。パフォーマンスに影響を与える可能性のある変数は多数あり、どちらの状況でも多くのことを最適化できます。
新しい仕事で Web 開発に戻らなければならなかったので、もし Pylons/Python でなかったら、代わりにジャングルに住むことを選んだかもしれません :) 私の主観的な意見では、PHP は幼稚園向けで、3 年生のときに学びました。多くの自尊心のある (または過大評価の) ソフトウェア エンジニアは、PHP コードに煩わされたくないでしょう。
なぜ私の雇用主は同意したのでしょうか?私たち (チーム) は Python に切り替えたばかりで、彼らはあまり言うことがありませんでした。Web サイトは現在も PHP ですが、Web を含む他のアプリケーションは Python で開発しています。パイロンのメリットは?Python ライブラリを Web アプリに統合できるということは、私見では大きな利点です。
パフォーマンスに関しては、まだ苦労しています。