PHP 7 と HHVM の比較

Jun 23, 2016 pm 01:24 PM

HHVM とは何ですか?

2008 年、Facebook は、Web サーバー上でコンパイルして実行できるように、PHP スクリプトを C++ に変換するツールを開発する取り組みを開始しました。目標はサーバー リソースを節約することであり、Facebook のユーザー ベースが急速に拡大しているため、これは重要な目標です。この意味では、サーバーが以前の 5 ~ 6 倍のリクエスト量を処理できるようになったので、このプロジェクトは成功しました。

2010 年に遡ると、Facebook のサーバー要件が大幅に増加しており、効率を向上させるために新しいイノベーションの使用を検討する時期でした。このニーズに基づいて、Facebook は HHVM を開発しました。
HHVM は、ジャストインタイム (JIT) コンパイルを使用して、PHP コードをある種のバイトコードに変換します。次に、バイトコードがマシンコードに変換され、可能な限り高速に実行されるように最適化されます。


PHP 7 とは何ですか?

PHP 7 は、HHVM に対する PHP コミュニティの対応です。 PHP 7 によってリリースされたプレビュー バージョンは、以前の PHP 5 に比べてパフォーマンスが 100% 向上したと主張しています。

PHP のバージョンが PHP5 から PHP7 に直接移行したのではないかと疑問に思われるかもしれませんが、その答えは次のとおりです。PHP6 の開発は 2005 年に開始されましたが、その進歩は遅すぎて多くの問題が発生したため、PHP6 はまだ正式にリリースされていません。 . 以前のバージョンは評判が悪かったです。そこで、PHP コミュニティは、この言語の新しいバージョンを直接 PHP7 と名付けることにしました。
本当の問題は PHP5 と PHP7 の比較ではありません。PHP7 の方がパフォーマンスが速いことはすでに明らかだからです。ただし、比較したいのは PHP7 と HHVM です。多くの専門家がこれら 2 つの方法をそれぞれ使用して PHP コードを処理し、いくつかの興味深い結論を明らかにしました。


PHP7 キャッシュにはオペコードがあり、

HHVM キャッシュにはバイトコードがあります (hhbc はヒップホップ バイトコードです)。PHP7 のパフォーマンス向上は、より優れたメモリ構造の使用にあります。スタック上の zval のメモリ割り当ては、PHP5 のヒープ上の割り当てを置き換えます。zval を直接操作すると、PHP5 の (セカンダリ) ポインタ操作が置き換えられ、WordPress を実行するために PHP7 が使用する CPU 命令の数が約 1/4 になります。 PHP5 は計算負荷が高く、bench.php の CPU 命令数も半分以下に削減できます。 HHVM は単一プロセスのサービスです。複数のスレッドを含む PHP-FPM には 1 つのメイン プロセスと複数のワーカー プロセスがあるわけではありません (Nginx にもこのプロセス モデルがあります)。つまり、HHVM はスレッドの問題によりクラッシュまたは停止した場合に自動的に回復できませんが、メイン プロセスはPHP-FPM はワーカー プロセスを再起動できます。HHVM への変換時に発生した問題: クラッシュ/メモリ リーク/互換性/デッドロック/パフォーマンス (JIT ウォームアップ/JIT がトリガーされない)。 11/04/hhvm-in-baidu/

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

Laravelの通知

See all articles