จุดกำเริ่มต้นของ HHVM (HipHop Virtual Machine) 

ต้องย้อนไปปี 2010  Facebook เปิดตัว HipHop for PHP ตัวแปลภาษา PHP เป็นไบนารีเพื่อเร่งความเร็วของ PHP  โดยจะแปลงเป็น C++ ก่อนแล้วค่อยคอมไพล์ปกติอีกครั้ง

HipHop เวอร์ชันแรกมีปัญหาเรื่องความซับซ้อนของโค้ด และ ไม่สนับสนุนภาษา  PHP  เต็มรูปแบบ บางคำสั่งก็ได้ บางคำสั่งก็ไม่ได้ รวมถึงคำสั่งที่ใช้บ่อยในการเขียน Advance PHP Programming ในยุคหลังอย่าง create_function, eval ก็ใช้งานไม่ได้เช่นกัน ผนวกกับปัญหาอีกมากมาย เช่นกิน Resource ในการคอมไพล์มาก Debug ยาก จนส่งผลให้ท้ายที่สุด Facebook ก็ประกาศยกเลิกใช้เจ้า HPHPc ไป ช่วงปลายปี 2011 บริษัทเลยออกซอฟต์แวร์เวอร์ชันสองชื่อ HipHop Virtual Machine หรือ HipHop VM (HHVM) โดยใช้เทคนิคด้านการแปลงโค้ดแบบใหม่มาช่วย ซอฟต์แวร์เวอร์ชันสองสามารถทดแทนซอฟต์แวร์เวอร์ชันแรกในบางส่วน แต่ยังไม่สามารถเอาชนะซอฟต์แวร์เวอร์ชันแรกในส่วนของ C++ ในเรื่องประสิทธิภาพได้ อีก 2 ปีต่อมา Facebook ได้ประกาศว่า HHVM นั้นมีประสิทธิเหนือกว่า HPHPc แล้ว

สำหรับเจ้าตัว HHVM นั้นทำตัวเป็น Interpreter ทำงานแทน PHP Interpreter เช่นพวก php5-fpm เลยโดยสมบูรณ์ ทำหน้าที่รับโค้ดเข้ามา แล้วแปลงเป็น Bytecode (HHBC) ก่อนจะแปลงเป็น Binary เพื่อรันแบบ Native อีกทีหนึ่งด้วย JIT ผลคือไม่ต้องมานั่งคอมไพล์ก่อนรันเพราะมันคอมไพล์แบบ Runtime ให้ แถมยังคงซึ่งประสิทธิภาพที่เหนือกว่า  PHP  ทั่วไปอย่างมหาศาล จากการที่มันเป็น Native และ I/O Non Blocking

http://nuuneoi.com/blog/671/hhvm-vs-hphpc1.png

ยังไม่หมดเพียงแค่นั้นทาง Facebook ได้ปล่อย Hack Language  ที่สร้างขึ้นมาเองเพื่อนพัฒนาเจ้าตัว HHMV

http://files.phpclasses.org/files/blog/file/hhvm-hack.png

โดยสร้างโครงสร้างภาษาเพิ่มเติมจาก  PHP  ของตัวเองขึ้นมาพร้อมกับ Library เพิ่มเติมบางส่วน ชื่อว่า Hack Language ที่ทำให้การเขียนโปรแกรมด้วย  PHP  ที่ว่าง่ายแล้ว ง่ายขึ้นไปอีกและมีรูปแบบภาษาที่ Flexible น้อยลง 

Credit : http://nuuneoi.com/

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ความแตกต่างระหว่าง ไลบรารี urllib กับ ไลบรารี requests
โดย Sakana ศ 18 ก.ค. 2025 6:59 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
9
ศ 18 ก.ค. 2025 6:59 pm โดย Sakana View Topic ความแตกต่างระหว่าง ไลบรารี urllib กับ ไลบรารี requests
urllib ใน Python การจัดการ URL และ HTTP Request
โดย Sakana ศ 18 ก.ค. 2025 5:13 pm บอร์ด Python Knowledge
0
20
ศ 18 ก.ค. 2025 5:13 pm โดย Sakana View Topic urllib ใน Python การจัดการ URL และ HTTP Request
library requests เอาไว้ทำอ่ะไรใน python
โดย Sakana ศ 18 ก.ค. 2025 4:15 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
14
ศ 18 ก.ค. 2025 4:15 pm โดย Sakana View Topic library requests เอาไว้ทำอ่ะไรใน python
Micro Web Framework คืออะไร
โดย Sakana พฤ 17 ก.ค. 2025 5:56 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
7
พฤ 17 ก.ค. 2025 5:56 pm โดย Sakana View Topic Micro Web Framework คืออะไร
วิธีดึงข้อมูลจาก API มาแสดงบนเว็บด้วย python
โดย Sakana พฤ 17 ก.ค. 2025 2:49 pm บอร์ด Python Knowledge
0
11
พฤ 17 ก.ค. 2025 2:49 pm โดย Sakana View Topic วิธีดึงข้อมูลจาก API มาแสดงบนเว็บด้วย python
ทำความเข้าใจ Callbacks ใน JavaScript: หัวใจของการทำงานแบบ Asynchronous
โดย Sakana พฤ 17 ก.ค. 2025 1:55 pm บอร์ด jQuery & Ajax Knowledge
0
13
พฤ 17 ก.ค. 2025 1:55 pm โดย Sakana View Topic ทำความเข้าใจ Callbacks ใน JavaScript: หัวใจของการทำงานแบบ Asynchronous
Truthy ใน Python คืออ่ะไร
โดย Sakana พฤ 17 ก.ค. 2025 12:50 pm บอร์ด Python Knowledge
0
12
พฤ 17 ก.ค. 2025 12:50 pm โดย Sakana View Topic Truthy ใน Python คืออ่ะไร
วิธีสร้างไฟล์ PDF รวมข้อความและรูปภาพด้วย PHP ร่วมกับ FPDF
โดย Sakana พ 16 ก.ค. 2025 6:04 pm บอร์ด PHP Knowledge
0
17
พ 16 ก.ค. 2025 6:04 pm โดย Sakana View Topic วิธีสร้างไฟล์ PDF รวมข้อความและรูปภาพด้วย PHP ร่วมกับ FPDF