Introduction to HHVM (Translation)_PHP Tutorial
Original link: http://coderoncode.com/2013/07/24/introduction-hhvm.html
"HHVM (HIpHop Virtual Machina) converts PHP code into high-level bytecode (generally considered an intermediate language). Then such bytecode is JIT (just-in-time) compiled at runtime Based on this consideration, HHVM is similar to virtual machines in other languages including C#/CLR and Java/JVM."
A bit of a long history
In early 2008, the Facebook website was running on HipHop (a PHP execution engine, now HPHP). Its original motivation was to convert a large amount of PHP code in the Facebook website into C++ code in order to save resources and improve application performance. The original version was HPHPc (a compiler that converts PHP code into C++ code).
In the next two years, the Facebook website continued to work on HipHop. At this time, HipHop added HPHPi (a "development mode" version of HPHP) and HPHPd (HipHop debugger). PHP applications running on the HipHop platform allow developers to view and step through code and debug interactively.
At its peak, PHP code running on HipHop was 6 times more performant than PHP code running on the ZEND engine. However, there are still several shortcomings in the first iteration of HipHop:
1. HPHPc does not fully support the PHP language. The most obvious one is that it does not support the create_function and eval functions. Granted, I don't think it's a bad thing not to support the eval function.
2. Facebook developers must maintain two different engines (HPHPc and HPHPi), which results in duplication of work and waste of resources.
3. Finally, HPHPc requires a completely different deployment process, which will hinder its adoption by PHP developers.
Given these problems, Facebook took two key actions in early 2010. One is to open source the HipHop platform. Open sourcing a project like this is a great way to build a community around the project and get help from the outside world. Second, Facebook started the development of a modern version of HipHop, which is HHVM (HipHop virtual Machine). HHVM improves the robustness of HPHPc and fixes many critical issues.
HHVM is built on top of HPHPc, and its working method is to convert PHP code into high-level bytecode (an intermediate language). Such bytecode is dynamically converted into machine code by the JIT (Just-In-Time) compiler at runtime.
If you're like me, you probably have a vague memory of bytecode, machine code, and Just-In-Time compilers. So, let’s digress for a moment to quickly review these concepts and explain how they play a key role in HHVM.
Bytecode, machine code and JIT, oh my...!
Bytecode: It is a code that humans cannot read and is designed to allow an interpreter or compiler to execute efficiently. When HHVM first imports our project, it converts all PHP code into an intermediate form called bytecode. The generated bytecode has nothing to do with a specific type of computer architecture, so it can be easily transplanted between different systems.
Machine code: It is a set of instructions designed to be executed directly by the CPU. If you have ever played Assembly (who hasn’t?), you must have a good understanding of what machine code is. For the few of you who have no interest in playing with assembly or similar languages, machine code is code generated by a compiler or interpreter and can be executed directly by the CPU.
JIT (Just In Time) compiler: Just in time compilation technology is a technology used to improve software performance. Its implementation principle is to compile the bytecodes stored in memory during execution. The JIT compiler imports these bytecodes and compiles them into the required parts.
The performance and speed gained by applying these technologies can provide core advantages to HipHop and subsequent HHVM. Maintain a PHP code base while implementing performance comparable to compiled applications.
The current HHVM basically supports the entire PHP5.4 version, however HHVM still has many bugs that hinder the execution of some applications. For this reason, Facebook's goal is to enable the top 20 open source PHP applications to run on HHVM. The first and most popular application to run on it was WordPress.
Next
Now that we have a good understanding of what HHVM does and its advantages, we can easily start testing applications running on it. In the following articles, I will introduce how to install HHVM on a virtual machine, run benchmarks on your application, and finally (fingers crossed) how to run Magento on HHVM.
For more articles, please follow my personal blog: http://www.nomoneynowife.com

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Recently, many users have been asking the editor, how to download links starting with 115://? If you want to download links starting with 115://, you need to use the 115 browser. After you download the 115 browser, let's take a look at the download tutorial compiled by the editor below. Introduction to how to download links starting with 115:// 1. Log in to 115.com, download and install the 115 browser. 2. Enter: chrome://extensions/ in the 115 browser address bar, enter the extension center, search for Tampermonkey, and install the corresponding plug-in. 3. Enter in the address bar of 115 browser: Grease Monkey Script: https://greasyfork.org/en/

As part of the WeChat ecosystem, WeChat video accounts have gradually become an important promotion tool for content creators and merchants. Getting links to video accounts on this platform is crucial for sharing and disseminating content. The following will introduce in detail how to obtain the WeChat video account link and how to add product links to the video account to improve the dissemination effect of the content. 1. How to get the WeChat video account link? After posting a video on your WeChat video account, the system will automatically create a video link. Authors can copy the link after publishing to facilitate sharing and dissemination. After logging in to your WeChat video account, you can browse the homepage of your video account. On the home page, each video is accompanied by a corresponding link so you can copy or share it directly. 3. Search video account: Enter the video account name in the WeChat search box

With the popularity of short video platforms, more and more creators are beginning to use video accounts to create and promote content. Video accounts can not only showcase personal talents, but also realize commercial monetization through product links. However, to add a link to a video account, certain conditions must be met. 1. What are the requirements for a video link? Video account authentication is a prerequisite for adding links to your video account. Currently, major short video platforms such as Douyin and Kuaishou provide certification services, which mainly include two types: personal certification and institutional certification. Personal certification requires the submission of real identity information, while institutional certification requires the provision of certification materials from relevant companies or organizations. After completing the authentication, users can add links to their video accounts to enhance the credibility and authority of their accounts. One of the video link

Many friends still don’t know how to link on Doudian, so the editor below will explain the tutorial on how to link on Doudian. If you are in need, hurry up and take a look. I believe it will be helpful to everyone. Step 1: First open the Doudian computer terminal and enter "Window Product Management" on the left column, as shown in the picture. Step 2: Then click "Add Product" in the upper right corner, as shown in the picture. Step 3: Then copy and paste our product link, as shown in the picture. Step 4: Then click "Confirm Add", as shown in the picture. Step 5: Finally enter the introduction, pictures and other information, and then click "Confirm" to link on Douyin, as shown in the picture. The above is the entire content of how to add links to Doudian brought to you by the editor. I hope it can be helpful to everyone.

Object-relational mapping (ORM) frameworks play a vital role in python development, they simplify data access and management by building a bridge between object and relational databases. In order to evaluate the performance of different ORM frameworks, this article will benchmark against the following popular frameworks: sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Test Method The benchmarking uses a SQLite database containing 1 million records. The test performed the following operations on the database: Insert: Insert 10,000 new records into the table Read: Read all records in the table Update: Update a single field for all records in the table Delete: Delete all records in the table Each operation

Object-relational mapping (ORM) is a programming technology that allows developers to use object programming languages to manipulate databases without writing SQL queries directly. ORM tools in python (such as SQLAlchemy, Peewee, and DjangoORM) simplify database interaction for big data projects. Advantages Code Simplicity: ORM eliminates the need to write lengthy SQL queries, which improves code simplicity and readability. Data abstraction: ORM provides an abstraction layer that isolates application code from database implementation details, improving flexibility. Performance optimization: ORMs often use caching and batch operations to optimize database queries, thereby improving performance. Portability: ORM allows developers to

How to implement HTTP streaming in C++? Create an SSL stream socket using Boost.Asio and the asiohttps client library. Connect to the server and send an HTTP request. Receive HTTP response headers and print them. Receives the HTTP response body and prints it.

Solution: 1. Retry: You can wait for a period of time and try again, or refresh the page; 2. Check the server load: Check the server's CPU, memory and disk usage. If the capacity limit is exceeded, you can try to optimize the server configuration or increase the capacity. Server resources; 3. Check server maintenance and upgrades: You can only wait until the server returns to normal; 4. Check network connection: Make sure the network connection is stable, check whether the network device, firewall or proxy settings are correct; 5. Ensure cache or CDN configuration Correct; 6. Contact the server administrator, etc.
