HHVM Playground

HHVM ( HipHop Virtual Machine ) เป็น Open Source Virtual Machine ของทาง Facebook ที่ออกแบบมาสำหรับการ Execute Program ในภาษา Hack และ PHP โดยใช้ Just-in-Time ( JIT ) Compiler ซึ่งมีประสิทธิภาพสูงกว่าและยังคงความยืดหยุ่นเอาไว้ แต่น่าเสียดายที่จะไม่ Support PHP อีกต่อไป


JIT Compiler

JIT Compiler เป็น Interpreter หรือเป็นตัว Compile PHP ให้เป็นภาษา C++ HHVM จะทำการคอมไพล์ภาษา Hack และ PHP ให้กลายเป็นภาษากลาง Internediate Bytecode ก่อนจะแปลงเป็นภาษาเครื่อง Machine Code ซึ่งทำงานแบบ Dynamic Runtime ทำให้ประสิทธิภาพสูงขึ้น

Pros

  • JIT Compiler ช่วยให้ HHVM สามารถเพิ่มประสิทธิภาพการทำงานได้ดีกว่าในการรัน PHP 5
  • เนื่องจากเป็นเทคโนโลยีที่ Facebook สร้างและใช้งานอยู่ จึงมีการพัฒนาอย่างต่อเนื่อง
  • การทำงานแบบ Dynamic Translation ช่วยให้ทำงานได้เร็วขึ้น
  • ต้องการพื้นที่หน่วยความจำ RAM เพียงเล็กน้อยในการ Execute

Cons

  • HHVM ไม่สนับสนุนธีมและปลั๊กอินบน WordPress ทั้งหมด แต่สามารถแก้ไขให้ทำงานร่วมกับ HHVM ได้
  • HHVM ถูกสร้างขึ้นสำหรับการทำงานบนเครื่อง 64-bit เท่านั้น เครื่อง 32-bit จะไม่ Support
  • HHVM ต้องการหน่วยความจำ RAM มากกว่าในการรัน PHP 7 ดังนั้นจึงไม่เหมาะกับเครื่องที่มี RAM ไม่ถึง 2 GB

Get Started

เรามาลงทำสอบการทำงานของ PHP 7 และ HHVM กันสักหน่อย ซึ่งผมจะทดสอบบน ISPConfig ที่ลง PHP 7 และ HHVM ไว้เรียบร้อย โดยใช้เว็บ Joomla ในการทดสอบ เพราะมันมี Debug ในตัว

  • ตรวจสอบ phpinfo() ก่อนที่จะใช้ HHVM ซึ่งในรูปใช้ Fast-CGI อยู่
  • เปิด Debug Mode ใน Joomla แล้วเปิดหน้าเว็บ จะเห็นว่า เนื่องจากไม่ได้มีข้อมูลอะไรมาก จึงใช้เวลาในการ Query แค่ 10.01 ms และใช้ Memory น้อยมากแค่ 2.44 MB หลังจาก Render เสร็จเรียบร้อย
  • ไปที่ ISPConfig แล้วทำการเปลี่ยนไปใช้ HHVM
  • ตรวจสอบ phpinfo() หลังจากเปลี่ยนไปใช้ HHVM
  • กลับไปดู Debug Mode ใน Joomla แล้วทำการรีเฟรชหน้าเว็บ จะเห็นว่า เวลาในการ Query เพิ่มขึ้นเป็น 13.74 ms ส่วน Memory ก็เพิ่มขึ้นเป็น 4.00 MB หลังจาก Render เสร็จเรียบร้อย

PHP 7 vs HHVM

ปัจจุบัน HHVM ยังคง Support ภาษา Hack ส่วนภาษา PHP จะยังคง Support PHP 5 และ PHP 7 เฉพาะ Feature หลัก ๆ การเลือกใช้ HHVM อาจจะไม่ได้ดีกว่าเสมอไป เพราะปัจจุบัน PHP 7 ก็มีความเร็วเกือบจะเท่า HHVM แล้ว แต่ส่วนที่ PHP 7 กินขาดเลยคือการใช้หน่วยความจำ ซึ่งก็ตามผลทดสอบ อยู่ที่การเลือกใช้ Server API ด้วย แต่ถ้าใช้ PHP 5 อยู่ HHVM ก็ยังเป็นตัวเลือกที่น่าสนใจอยู่ แต่ผมคิดว่าอัพเกรดไปใช้ PHP 7 จะดีกว่า

อ่านเพิ่มเติม : https://bit.ly/2QxLb7m


Leave a Reply

Your email address will not be published. Required fields are marked *