GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • メインページ
  • コミュニティ・ポータル
  • 最近の出来事
  • 新しいページ
  • 最近の更新
  • おまかせ表示
  • 練習用ページ
  • アップロード (ウィキメディア・コモンズ)
  • 特別ページ
  • ヘルプ
  • 利用案内
  • 井戸端
  • お知らせ
  • バグの報告

This view

  • Original page
  • New address

GeezerVison is showing ja.wikipedia.org — HipHop Virtual Machine - Wikipedia

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "HipHop Virtual Machine" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL
(2025年12月)
HipHop Virtual Machine (HHVM)
開発元 Meta
初版 2011年12月9日 (2011-12-09)[1]
最新版
4.172 / 2022年11月2日 (2022-11-02)[2]
リポジトリ
  • github.com/meta/hhvm
プログラミング
言語
C++、C言語
サポート状況 開発中
ライセンス PHP License、Zend License[3]
公式サイト hhvm.com ウィキデータを編集

HipHop Virtual Machine(ヒップホップ・バーチャル・マシン、HHVM)は、実行時コンパイラ (JIT) 方式でPHPおよびHackといったプログラミング言語を実行する、仮想マシン型の処理系である。HHVMで実行する場合、PHPやHackのコードは、JITコンパイルの過程でまず中間言語のHipHopバイトコード (HHBC) に変換され、さらに動的にx64の機械語へとコンパイル・最適化を行った上で実行される[1][4]。これに対し、公式のPHP実装であるZend Engineでは、PHPのコードを中間表現に変換した上で、中間表現をそのまま実行している[5]。

HHVMはMeta(旧Facebook)が開発しており、GitHub上にあるソースコードはPHP LicenseとZend Licenseのもと公開されている[1][3]。2018年9月12日、Facebookの開発チームはPHPのサポートを段階的に終了することを発表[6][7]し、同年9月18日にはHHVMのPHP 5のサポートを終了すると同時に、以降はHackに注力し、PHP 7の新しい機能も積極的には実装しないことを発表した。[8] 2023年10月27日、Paul Bissonetteは公式ブログにてGCCサポート終了決定とHHVMおよびHackの公式リリースを以降行わない旨を表明した。[9]

概要

HHVMはFacebook社で使われていた、PHPをC++に変換するタイプの処理系であるHipHop for PHP (HPHPc) の後継として開発された[10][11]。HPHPcの運用を行う過程で、さらなるパフォーマンス向上が見込めなくなってきたこと、PHPの中でサポートできない機能があったこと、開発やデプロイに関わる時間・資源消費の問題など、各種の問題が発生してきた[10]。HPHPcの運用で得られた経験を元に、それら問題点を解決することを目標として、2010年の頭頃にはFacebookとしてPHPのJIT仮想マシンを作ることを決定した[12]。2013年の第1四半期には、facebook.comの実運用がHPHPcからHHVMへ切り替わった。

JITコンパイルの過程として、HHVMではPHPやHackのコードを、HHBCと呼ばれるバイトコード型の中間言語へと変換する。HHBCはHHVMのために設計されたバイトコードであり、後工程でJITコンパイラとインタープリタのどちらも使用できるようになっている。そして、HHBCはバイトコードのレベルで最適化が行われ、x64の機械語にその場で(JIT)コンパイルされ、CPUが直接実行する[1][10][13]。このような実行過程は、.NET Frameworkでの共通言語ランタイムや、Javaの仮想マシンといった、他の言語での仮想マシンとも共通する部分がある。

HHVMでは、公式のPHP 5.4が含む機能を、create_function()やeval()といった、文字列をコードとして実行する機能までほぼ完全に実装したこと[14][15]、時間のかかるバイナリビルドが不要となりデプロイが簡単となること、開発用と本番用で同じ処理系が使えること(HPHPcの時代には、開発過程で逐一ビルドするのを避けるため、別途でインタープリタを用意していた)など、HPHPcと比べて多くの利点がある。

HHVMの公開に合わせて、「PHPの新たな形態」とも言える、Facebook社が開発したHack言語も同時に動かせるようになっている[16][17]。Hackは動的型付けと静的型付けをあわせ持つ言語であり、関数の引数や返り値、プロパティに型チェックを加えられる(ローカル変数に対しては不可能)。なお、HackではPHPの一部機能に非対応となっている[18][19][20][21]。

パフォーマンス

ウェブサイトでは、ユーザーはページ表示の速度に敏感であり、サーバの、1秒の半分にも満たない遅れであっても、ユーザーエクスペリエンスに深刻な悪影響を及ぼし、サイトの効果を大きく損ねてしまうことが知られている[22]。

実行環境としてのHHVMを考えると、実行時の型情報を使うことで、事前コンパイル型よりスループット・レイテンシの両面に優れたコードを出力しうるものとなっている。実際、2012年の第4四半期には、HHVMの性能は事前コンパイル型のHPHPcに匹敵するようになり[10]、2013年12月にはさらに15%高速化している[23]。

PHPのサポート終了

前述のように元々はPHPの実行環境として開発されたHHVMだが、Facebookは2018年9月、PHPのサポートを段階的に終了することを発表した。これは独自のプログラミング言語Hackの登場、並びにHackの構文を取り込み性能も改善されたPHP7の登場によりPHP側の状況が変化したためとみられる。PHPのサポートはHHVM 3.30までとされており、次期メジャーリリースのHHVM 4.0ではサポートは完全に廃止される。利用者にはHackかPHP7または他のPHP実行環境への移行が推奨された[7]。翌2019年2月12日、予定通りPHPサポートを終了したHHVM 4.0がリリースされた[24]。

脚注

  1. 1 2 3 4 Jason Evans (2011年12月9日). “The HipHop Virtual Machine”. Facebook. 2014年8月2日閲覧。
  2. ↑ “HHVM 4.172” (英語). facebook/hhvm. Facebook. 2025年2月7日閲覧。
  3. 1 2 “facebook/hhvm”. github.com. Facebook. 2014年8月2日閲覧。
  4. ↑ “facebook/hhvm”. github.com. Facebook. 2014年8月2日閲覧。
  5. ↑ Kaushik Pal (2014年4月28日). “PHP and Zend Engine Internals”. phpbuilder.com. 2014年9月23日閲覧。
  6. ↑ “Ending PHP Support, and The Future Of Hack”. hhvm.com. Facebook (2018年9月12日). 2018年11月8日閲覧。
  7. 1 2 末岡洋子 (2018年9月14日). “米Facebook、「HHVM」でのPHPサポートを終了する方針を発表”. OSDN Magazine. 2025年4月1日時点のオリジナルよりアーカイブ。2018年11月8日閲覧。
  8. ↑ “The Future of HHVM”. hhvm.com. Facebook (2018年9月18日). 2018年11月8日閲覧。
  9. ↑ “Project Update and OSS Support Changes”. hhvm.com. Facebook (2023年10月27日). 2023年12月18日閲覧。
  10. 1 2 3 4 Drew Paroski (2012年11月29日). “Speeding up PHP-based development with HHVM”. Facebook. 2014年8月2日閲覧。
  11. ↑ “Announcement on GitHub removing HPHPc support”. github.com. Facebook (2013年2月19日). 2013年5月24日閲覧。
  12. ↑ Cade Metz (2013年6月10日). “How Three Guys Rebuilt the Foundation of Facebook”. Wired. 2014年9月28日閲覧。
  13. ↑ “HipHop Bytecode v1 revision 18”. github.com. Facebook (2014年7月31日). 2013年5月24日閲覧。
  14. ↑ “facebook/hhvm”. github.com (2013年5月). 2014年8月2日閲覧。
  15. ↑ “facebook/hhvm”. github.com. Facebook (2014年5月8日). 2014年8月2日閲覧。
  16. ↑ Cade Metz (2014年3月20日). “Facebook Introduces 'Hack,' the Programming Language of the Future”. Wired. 2014年4月15日閲覧。
  17. ↑ “Hack: a new programming language for HHVM”. code.facebook.com. Facebook (2014年4月). 2014年3月23日閲覧。
  18. ↑ Josh Lockhart (2014年4月3日). “Facebook’s Hack, HHVM, and the future of PHP”. O'Reilly Media. 2014年8月2日閲覧。
  19. ↑ “Hack Manual”. docs.hhvm.com. 2014年3月25日閲覧。
  20. ↑ “Hack Manual”. docs.hhvm.com. 2014年3月25日閲覧。
  21. ↑ “Hack Manual”. docs.hhvm.com. 2014年4月2日閲覧。
  22. ↑ Brady Forrest (2009年6月23日). “Bing and Google Agree: Slow Pages Lose Users”. O'Reilly Media. 2014年9月28日閲覧。
  23. ↑ “We are the 98.5% (and the 16%)”. hhvm.com (2013年12月19日). 2014年8月2日閲覧。
  24. ↑ 末岡洋子 (2019年2月13日). “「HHVM 4.0」リリース、PHPのサポートを廃止”. OSDN Magazine. 2025年4月5日時点のオリジナルよりアーカイブ。2019年2月13日閲覧。

関連項目

  • Parrot
  • Phalanger
  • Zend Engine

外部リンク

  • 公式ウェブサイト
  • GitHub上のソースコード
  • Internals of HHVM a talk given by a HipHop engineer, Keith Adams, at QCon 2012
  • HHVM Talk to Wikimedia in March 2013 a talk given by a HipHop engineer, Andrew Paroski, at Wikimedia
  • Scaling with HipHop - YouTube a talk given by a HipHop open source engineer, Sara Goleman, at PHP UK Conference 2013
  • 公式ブログ
  • 公式Facebookページ
Meta Platforms, Inc.
Family of Apps(アプリ部門)/ Reality Labs(VR・AR部門)/ Meta AI(AI部門)
サービス
  • Facebook
  • Instagram
  • Messenger
  • Threads
  • WhatsApp
オープンソース
  • Apache Cassandra
  • Apache Hive
  • Apache Thrift
  • Buck
  • FQL
  • Hack
  • HHVM
  • HipHop for PHP
  • Infer
  • MyRocks
  • Open Compute Project
  • Phabricator
  • React
  • React Native
  • RocksDB
  • Scribe
  • Telecom Infra Project
  • Tornado
VRヘッドセット
  • Meta Quest/Oculus
    • Oculus Rift
    • Oculus Go
    • Oculus Quest
    • Meta Quest 2
    • Meta Quest Pro
    • Meta Quest 3
    • Meta Quest 3S
その他の製品
  • Llama
  • Muse
  • Meta Horizon OS
  • Meta Portal
  • Ray-Ban Meta
  • Workplace
人物
  • マーク・ザッカーバーグ
  • エドゥアルド・サベリン
  • クリス・ヒューズ
  • ショーン・パーカー
  • シェリル・サンドバーグ
  • 味澤将宏
関連項目
  • いいね!ボタン
  • Facebookへの批判
  • Facebook監督委員会
  • Diem
  • ソーシャル・ネットワーク
  • Facebookで大逆転
  • ビッグ・テック
カテゴリ Category:Meta / Category:Facebook / Category:Instagram
PHP
実装
  • Zend Engine(公式)
  • HHVM
  • Parrot
  • Phalanger
ライブラリ
  • PDO
  • PEAR
  • PECL
  • PHPUnit
  • Standard PHP Library
  • Composer
フレームワーク
  • CakePHP
  • CodeIgniter
  • Drupal
  • eZ Publish
  • FuelPHP
  • Joomla!
  • Laminas
  • Laravel
  • MODX
  • NetCommons
  • PRADO
  • Symfony
  • TYPO3
  • WordPress
  • XOOPS
  • Yii
  • Silex
IDE
  • Aptana
  • Eclipse PDT
  • NetBeans
  • RadPHP
  • Zend Studio
  • PhpStorm
人物
  • アンディ・ガトマンズ
  • ゼーブ・スラスキー
  • ラスマス・ラードフ
その他
  • PHP License
  • Hack
  • LAMP
  • WampServer
  • XAMPP
  • PHP2Shell
  • カテゴリ カテゴリ
  • コモンズ コモンズ
「https://ja.wikipedia.org/w/index.php?title=HipHop_Virtual_Machine&oldid=111247932」から取得
カテゴリ:
  • Metaのソフトウェア
  • オープンソースソフトウェア
  • 仮想マシン
  • 2011年のソフトウェア
  • C++でプログラムされた自由ソフトウェア
  • PHPでプログラムされた自由ソフトウェア
  • Cでプログラムされた自由ソフトウェア
  • Rustでプログラムされた自由ソフトウェア
隠しカテゴリ:
  • 出典を必要とする記事/2025年12月
  • 日本語版記事がリダイレクトの仮リンクを含む記事
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.