So sánh hiệu năng của những nền tảng chạy PHP – HHVM, Zephir và PHP.
Kể từ những phiên bản đầu tiên PHP, tốc độ xử lý của PHP luôn là một vấn đề lớn, mặc dù đã có một số cải tiến trong những phiên bản mới.

Bên cạnh những cải tiến của chính nhóm phát triển PHP, thì hiện nay cũng xuất hiện những nền tảng bên ngoài giúp nâng cao tốc độ của PHP. HHVM của Facebook, ZendOpache của Zend và Zephir của nhóm phát triển Phalcon là 3 nền tảng giúp nâng cao tốc độ PHP, đồng thời cũng dành được nhiều sự quan tâm nhất hiện nay

HHVM

HHVM- Là một nền tảng chạy PHP (tương tự như PHP-FPM hay mod_php) được phát triển bởi Facebook. HHVM là tên viết tắt của HipHop Virtual Machine.

Facebook xây dựng HipHop VM để thay thế cho HPHPc- một trình dịch PHP sang C++. HipHop VM giúp tăng tốc độ cho ứng dụng PHP bằng cách sử dụng một trình biên dịch JIT (Just In Time). Trong các phiên bản gần đây, nhóm phát triển đã đạt được nhiều bước tiến mới giúp HHVM có thể tương thích tốt với các thư viện PHP hiện tại (Danh sách thư viện chạy được với HHVM).

Việc tương thích tốt với các thư viện PHP sẽ giúp các ứng dụng PHP hiện tại có thể chạy trực tiếp trên HHVM và tận dụng được trình biên dịch JIT của nó. Mặc dù vẫn còn một số vấn đề với phiên bản HHVM hiện tại nhưng với tốc độ phát triển hiện tại, HHVM hoàn toàn có thể trở thành nền tảng mới để chạy PHP

PHP 5.5 và OPcache

Những nỗ lực tăng tốc xử lý cho PHP của Zend đã dẫn đến sự ra đời của OPCache. Khác với APC,OPCache không lưu sử dụng mô hình lưu trữ key/value, nó tập trung vào việc tối ưu và caching mã nguồn PHP.

Theo một số tài liệu, Zend OPcache giúp tăng hiệu suất bằng cách lưu trữ những đoạn bytecode đã được dịch sẵn trong RAM, để từ đó giảm các thao tác đọc mã nguồn từ ổ đĩa. Ngoài ra, OPCache còn có thể tối ưu lại các đoạn bytecode giúp giảm thời gian thực thi

Zephir

Trong một nỗ lực khác, nhóm lập trình Phalcon Framework đã xây dựng nên Phalcon bằng ngôn ngữ Zephir. Phalcon là một PHP Framework được viết bằng ngôn ngữ lập trình C, sau đó được biên dịch thành một PHP extension(thành phần mở rộng cho PHP). Thực tế thì Phalcon Framework không phải là framework đầu tiên xây dựng theo phương pháp này, trước đó Yaf Framework cũng đã được xây dựng bằng phương pháp tương tự. Mục tiêu của Phalcon là trở thành Framework có tốc độ nhanh nhất cho PHP.

Mặc dù đạt được tốc độ cao, tuy nhiên với cách làm trên, Phalcon cũng gây khó cho các lập trình viên PHP vì toàn bộ mã nguồn được viết bằng C. Vì vậy, đội phát triển Phalcon đã quyết định viết lại framework này bằng ngôn ngữ lập trình Zephir.

Zephir là một ngôn ngữ khá đơn giản, cú pháp của Zephir là sự kết hợp giữa PHP và C. Khi biên dịch, toàn bộ mã nguồn Zephir sẽ được chuyển đổi sang ngôn ngữ lập trình C, kết quả biên dịch sau đó sẽ được dùng để tạo nên PHP extension.

Thực hiện Benchmark tốc độ

Để đánh giá tốc độ, nhóm đã cài đặt thuật toán Mandelbrot Set Fractal trên các nền tảng sau:

  • C thuần
  • PHP thuần
  • HHVM
  • Zephir CBLOCK (Có nhũng mã nguồn C)
  • Zephir đã tối ưu hoa (dùng Zephir để gọi mã nguồn C)
  • Zephir thuần

Bạn có thể tìm hiểu thêm các mã nguồn được sử dụng để Benchmark tại GitHub

Nhóm Benchmark đã sử dụng một hệ thống đơn giản để đánh giá về hiệu năng của từng nền tảng khi chạy cùng một thuật toán. Bên cạnh đó nhóm cũng thực hiện chạy thuật toán từ 20 đến 40 lần để đảm bảo kết quả cuối cùng thu được là khách quan và chính xác nhất

Cấu hình của máy dùng để chạy thử nghiệm: i3 CPU Intel ® Core ™ 530@2.93GHz x 4 với 8GB bộ nhớ RAM, hệ điều hành Linux Mint.

Phiên bản của những nền tảng được đem ra so sánh(phiên bản mới nhất tính đến nay):

Để tính thời gian chạy, nhóm thực hiện đã sử dụng tiện ích time trên linux, tiện ích giúp nhóm thu nhập được những thông tin về % tài nguyên được sử dụng bởi CPU cũng như dung lượng RAM được sử dụng

Kết quả BenchMark

Không nằm ngoài dự án, vượt qua các đối thủ khác, Zephir cho tốc độ xử lý nhanh nhất, bỏ xa các đối thủ còn lại. Tiếp theo là HHVM, và cuối cùng là PHP.

Đây là đồ thị thể hiện kết quả.

Học lập trình web bằng PHP trực tuyến

Học lập trình web bằng PHP online

 

Học lập trình web bằng PHP chất lượng

Học lập trình web bằng PHP cấp tốc

Bạn có thể tải về kết quả thử nghiệm tại đây.

Một số điểm cần lưu ý về Zephir và HHVM:

Về Zephir

Zephir không phải là ngôn ngữ đơn giản về mặt cú pháp, đôi khi nhìn vào cú pháp của Zephir, bạn sẽ cảm thấy khó hiểu. Bản thân đoạn code C được biên dịch ra từ Zephir cũng phức tạp hơn việc cài đặt trực tiếp bằng C. Mặc đù vậy, Zephir là một dự án hay, nó vừa đơn giản hóa việc xây dựng các PHP extension, vừa mang lại hiệu năng cao cho ứng dụng

Về HHVM

HHVM hoạt động như một trình biên dịch Just-in-time, đồng nghĩa với việc trong lần đầu chạy ứng dụng nó sẽ rất chậm (chậm ngang với PHP CLI). Vì vậy nếu bạn dùng HHVM để chạy code PHP như PHP CLI, cần gõ thêm -vEval.Jit = 1 sau lệnh gọi HHVM để tăng tốc cho những lần chạy sau

  • PHP 5.5.8
  • Zephir (fc08fab1e- 3/2/2014)
  • HHVM (55212b92-21/01/2014)