एचएचवीएम

From Vigyanwiki
Revision as of 21:27, 18 February 2023 by alpha>Indicwiki (Created page with "{{Short description|Process virtual machine developed by Meta}} {{Use mdy dates|date=August 2014}} {{Infobox software | name = HHVM | logo...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

HHVM
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)

हिपहॉप वर्चुअल मशीन (HHVM) एक खुला स्रोत सॉफ्टवेयर है। ओपन-सोर्स वर्चुअल मशीन समय-समय पर संकलन पर आधारित है। जस्ट-इन-टाइम (JIT) कंपाइलेशन हैक (प्रोग्रामिंग भाषा) के लिए एक निष्पादन इंजन के रूप में कार्य करता है। JIT संकलन के सिद्धांत का उपयोग करके, हैक कोड को पहले इंटरमीडिएट हिपहॉप बाइटकोड (HHBC) में रूपांतरित किया जाता है, जिसे बाद में गतिशील रूप से x86-64 मशीन कोड, अनुकूलित और मूल रूप से निष्पादित किया जाता है।[6][7] यह PHP के सामान्य भाषा निष्पादन के विपरीत है, जिसमें Zend इंजन PHP स्रोत कोड को opcode में बदल देता है जो बाईटकोड के रूप में कार्य करता है, और Zend इंजन के वर्चुअल CPU पर सीधे ऑपकोड निष्पादित करता है।[8] HHVM को मेटा प्लेटफॉर्म द्वारा विकसित किया गया है, परियोजना के स्रोत कोड को GitHub पर होस्ट किया गया है;[9] यह PHP लाइसेंस और Zend लाइसेंस की शर्तों के तहत लाइसेंस प्राप्त है।[1][5]


सिंहावलोकन

एचएचवीएम को हिपहॉप फॉर पीएचपी (एचपीएचपीसी) पीएचपी निष्पादन इंजन के उत्तराधिकारी के रूप में बनाया गया था, जो कि फेसबुक द्वारा बनाया गया एक पीएचपी-टू-सी++ ट्रांसपाइल्स भी है।[10][11] प्राप्त अनुभव के आधार पर और एचपीएचपीसी द्वारा पेश किए गए मुद्दों को हल करने के लक्ष्य के आधार पर, मेटा ने 2010 की शुरुआत में जेआईटी-आधारित PHP आभासी मशीन बनाने का फैसला किया। एचपीएचपीसी से जुड़े मुद्दों में आगे के प्रदर्शन में सुधार के लिए एक पठारी प्रभाव तक पहुंचना, पीएचपी भाषा की सभी विशेषताओं का समर्थन करने में एक मौलिक अक्षमता, और विशिष्ट समय- और संसाधन-खपत विकास और परिनियोजन प्रक्रियाओं से उत्पन्न होने वाली कठिनाइयाँ शामिल हैं।[10] Q1 2013 में, facebook.com वेबसाइट के उत्पादन संस्करण ने HPHPc का उपयोग करना बंद कर दिया और HHVM पर स्विच कर दिया।

JIT संकलन सिद्धांत का पालन करते हुए, HHVM पहले निष्पादित कोड को एक मध्यवर्ती भाषा, उच्च-स्तरीय बायटेकोड HHBC में परिवर्तित करता है। एचएचबीसी विशेष रूप से एचएचवीएम के लिए बनाया गया एक बाइटकोड प्रारूप है, जो दुभाषिया (कंप्यूटिंग) और जस्ट-इन-टाइम कंपाइलर्स दोनों द्वारा खपत के लिए उपयुक्त है। अगला, HHVM गतिशील रूप से (बस-इन-टाइम) HHBC को x86-64 मशीन कोड में अनुवादित करता है, अनुवादित बायटेकोड के गतिशील विश्लेषण के माध्यम से संकलक का अनुकूलन करता है। अंत में, यह x86-64 मशीन कोड निष्पादित करता है।[1][10][12] नतीजतन, एचएचवीएम में अन्य प्रोग्रामिंग भाषाओं द्वारा उपयोग की जाने वाली वर्चुअल मशीनों के लिए कुछ समानताएं हैं, जिनमें सामान्य भाषा रनटाइम (सी शार्प (प्रोग्रामिंग भाषा) के लिए सीएलआर, सी # भाषा) और जावा वर्चुअल मशीन (जेवीएम, जावा (प्रोग्रामिंग) शामिल हैं। भाषा) भाषा)।

एचपीएचपीसी की तुलना में एचएचवीएम के कई फायदे हैं। एचएचवीएम एक ही निष्पादन इंजन का उपयोग करता है जब उत्पादन और विकास दोनों वातावरणों में तैनात किया जाता है, जबकि निष्पादन इंजन और एचपीएचपीडी डिबगर के बीच दोनों प्रकार के वातावरण में एकीकरण का समर्थन करता है; नतीजतन, एचपीएचपीआई (हिपहॉप दुभाषिया) को विकास उपयोगिता के रूप में अलग से बनाए रखने की अब आवश्यकता नहीं है क्योंकि यह एचपीएचपीसी के मामले में था। एचएचवीएम प्रोग्राम चलाने के लिए एचपीएचपीसी द्वारा आवश्यक लंबे सॉफ्टवेयर निर्माण को भी समाप्त कर देता है, जिसके परिणामस्वरूप एचपीएचपीसी की तुलना में बहुत सरल विकास और परिनियोजन प्रक्रियाएं होती हैं।[1] अंत में, 4.0 से पहले के एचएचवीएम के संस्करणों में संपूर्ण PHP भाषा के लिए लगभग पूर्ण समर्थन है (जैसा कि PHP संस्करण 5.4 के आधिकारिक कार्यान्वयन द्वारा परिभाषित किया गया है), जिसमें समर्थन शामिल है create_function() और eval() निर्माण, जो एचपीएचपीसी के साथ असंभव था।[13][14] एचएचवीएम 3.0 के साथ मिलकर,[15] मेटा ने हैक (प्रोग्रामिंग लैंग्वेज) भी जारी किया, जो PHP का व्युत्पन्न है[16][17] जो प्रोग्रामर को गतिशील टाइपिंग और स्थिर टाइपिंग (एक अवधारणा जिसे क्रमिक टाइपिंग के रूप में भी जाना जाता है) का उपयोग करने की अनुमति देता है, और डेटा प्रकार को फ़ंक्शन (प्रोग्रामिंग) तर्क (कंप्यूटर प्रोग्रामिंग), फ़ंक्शन रिटर्न मान और वर्ग गुणों के लिए निर्दिष्ट करने की अनुमति देता है। हालाँकि, हैक पूरी तरह से पिछड़ी संगतता प्रदान नहीं करता है क्योंकि यह कई PHP सुविधाओं को हटा देता है, जैसे कि goto बयान और गतिशील चर (कंप्यूटर विज्ञान) नाम।[18][19][20][21] सितंबर 2017 में, यह घोषणा की गई थी कि संस्करण 3.30 आधिकारिक तौर पर PHP का समर्थन करने के लिए HHVM का अंतिम संस्करण होगा, और यह कि HHVM केवल हैक को आगे बढ़ने का समर्थन करेगा।[22] यह PHP 7 में भिन्नताओं और असंगतताओं के कारण था।[23] फरवरी 2019 में जारी HHVM 4.0, PHP के समर्थन के बिना पहला संस्करण था।[24]


प्रदर्शन

एक प्रक्रिया वर्चुअल मशीन के रूप में जो निष्पादन वातावरण प्रदान करती है, HHVM में अधिक कुशल देशी कोड का उत्पादन करने के लिए लाइव प्रकार की जानकारी का उपयोग करने की क्षमता होती है, जिससे उच्च वेब सर्वर THROUGHPUT और कम विलंबता (इंजीनियरिंग) हो जाती है। Q4 2012 में, HHVM पर facebook.com के स्रोत कोड के निष्पादन ने HPHPc के साथ प्रदर्शन समानता प्राप्त की,[10]और दिसंबर 2013 में HPHPc को लगभग 15% से भी अधिक कर दिया गया था।[25]


यह भी देखें

टिप्पणियाँ

  1. Only the Hack's type-checking (hh_server and hh_client) and code-formatting (hh_format) command-line utilities and daemons bundled together with the HipHop Virtual Machine are written in OCaml.


संदर्भ

  1. 1.0 1.1 1.2 1.3 Jason Evans (December 9, 2011). "The HipHop Virtual Machine". Meta Platforms. Retrieved August 2, 2014.
  2. "Building and installing HHVM on CentOS 7.x". github.com. Meta Platforms. May 26, 2015. Retrieved June 12, 2015.
  3. "Building the Hack typechecker". github.com. Meta. September 10, 2014. Retrieved June 12, 2015.
  4. "Facebook's HHVM Begins Seeing Rust Rewrite - Phoronix". Retrieved August 29, 2019.
  5. 5.0 5.1 "facebook/hhvm: License". github.com. Facebook, Inc. Retrieved August 2, 2014.
  6. Ottoni, Guilherme (June 20, 2018). "HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack". Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM. pp. 151–165.
  7. "facebook/hhvm". github.com. Meta Platforms. Retrieved August 2, 2014.
  8. Kaushik Pal (April 28, 2014). "PHP and Zend Engine Internals". phpbuilder.com. Archived from the original on September 15, 2014. Retrieved September 23, 2014.
  9. HHVM source code on GitHub
  10. 10.0 10.1 10.2 10.3 Drew Paroski (November 29, 2012). "Speeding up PHP-based development with HHVM". Meta Platforms. Retrieved August 2, 2014.
  11. "Announcement on GitHub removing HPHPc support". github.com. Meta Platforms. February 19, 2013. Retrieved May 24, 2013.
  12. "HipHop Bytecode v1 revision 18". github.com. Meta Platforms. July 31, 2014. Retrieved May 24, 2013.
  13. "facebook/hhvm: About upgrade to PHP 5.4 engine". github.com. May 2013. Retrieved August 2, 2014.
  14. "facebook/hhvm: Home". github.com. Meta Platforms. May 8, 2014. Retrieved August 2, 2014.
  15. Paul Tarjan (March 28, 2014). "HHVM 3.0.0". Facebook. Retrieved December 26, 2022.
  16. Cade Metz (March 20, 2014). "Facebook Introduces 'Hack,' the Programming Language of the Future". Wired. Retrieved April 15, 2014.
  17. Julien Verlaguet; Alok Menghrajani (April 2014). "Hack: a new programming language for HHVM". code.facebook.com. Facebook. Retrieved March 23, 2014.
  18. Josh Lockhart (April 3, 2014). "Facebook's Hack, HHVM, and the future of PHP". O'Reilly Media. Retrieved August 2, 2014.
  19. "Hack and HHVM: Type Annotations (Hack Manual)". docs.hhvm.com. Retrieved March 25, 2014.
  20. "Hack and HHVM: Type Inference (Hack Manual)". docs.hhvm.com. Archived from the original on March 26, 2014. Retrieved March 25, 2014.
  21. "Hack and HHVM: Unsupported PHP Features in Hack (Hack Manual)". docs.hhvm.com. Archived from the original on November 4, 2015. Retrieved April 2, 2014.
  22. Fred Emmott (September 12, 2018). "Ending PHP Support, and The Future Of Hack". Retrieved December 26, 2022.
  23. Krill, Paul (September 20, 2017). "Forget PHP! Facebook's HHVM engine switches to Hack instead". InfoWorld (in English). Retrieved February 6, 2019.
  24. Fred Emmott (February 11, 2019). "HHVM 4.0.0". Retrieved December 26, 2022.
  25. "We are the 98.5% (and the 16%)". hhvm.com. December 19, 2013. Retrieved August 2, 2014.


बाहरी संबंध

  • No URL found. Please specify a URL here or add one to Wikidata.