So sánh PHP 7 và HHVM - Nên chọn PHP 7 hay HHVM

PHP vẫn được coi là ngôn ngữ kịch bản yêu thích của nhiều web developer, và phiên bản mới nhất của nó rất nhanh hơn so với người tiền nhiệm của nó; Tuy nhiên, một chút công cụ ảo có khả năng thực thi mã PHP gọi HHVM đã xuất hiện trong nửa thập kỷ qua nhờ hiệu năng vượt trội so với PHP 5. Bây giờ PHP 7 đã được ra đời trong gần một năm, tại sao lại là PHP 7 vs HHVM cuộc tranh luận vẫn đang diễn ra?

PHP 7 hoặc HHVM chắc chắn sẽ lập luận rằng ngôn ngữ của họ lựa chọn là tốt nhất cho tất cả mọi người. Cuối cùng, sự lựa chọn đúng cho bạn sẽ phụ thuộc vào sự quen thuộc của bạn với PHP hoặc HHVM và các loại dự án bạn đang làm việc. Dưới đây là một số các biểu đồ so sánh khả năng của chúng.

Về HHVM

HHVM, viết tắt của HipHop Virtual Machine, được phát triển bởi Facebook trong năm 2010 và phát hành công khai các năm sau đó. Nó được thiết kế để giảm tài nguyên máy chủ để cung cấp một trải nghiệm web nhanh hơn cho người dùng Facebook. Nhờ trình biên dịch Just in Time (JIT) của nó, HHVM có thể nhanh chóng chuyển đổi mã PHP vào mã máy.

Ưu điểm của HHVM

  • Trình biên dịch JIT cho HHVM một tăng hiệu suất lớn hơn PHP 5.
  • Bởi vì Facebook sử dụng HHVM, họ đang liên tục làm việc để cải thiện nó, vì vậy các nhà phát triển có sự hỗ trợ của cộng đồng tin cậy.
  • Biên dịch động cho phép các trang web chạy nhanh hơn trong nhiều tình huống.
  • Một ngôn ngữ phát triển nội bộ gọi là Hack cho phép các developer sử dụng dynamic và static typing để cải thiện hơn nữa tốc độ biên dịch.
  • HHVM đòi hỏi không gian bộ nhớ ít để thực hiện những requests.
  • Bất kỳ nhà phát triển có thể cài đặt và làm việc với HHVM.

Nhược điểm của HHVM

  • Trong khi bạn có thể thêm phần mở rộng tùy chỉnh, trước tiên bạn phải chuyển đổi chúng.
  • Trong trường hợp không chắc rằng Facebook từ bỏ hỗ trợ cho HHVM, sự phát triển và hỗ trợ cộng đồng lớn sẽ không còn tồn tại.
  • HHVM không hỗ trợ tất cả các themes và plugins của WordPress; Tuy nhiên, bạn có thể hack chúng hoạt động với HHVM.
  • HHVM đã được sinh ra dành cho các high-end machines, vì vậy nó không được hỗ trợ bất kỳ hệ điều hành 32 bit.
  • HHVM đòi hỏi nhiều bộ nhớ tổng thể hơn PHP 7, có thể hạn chế lựa chọn máy chủ. Vì lý do này, nó không được khuyến khích sử dụng HHVM trên các máy chủ có bộ nhớ RAM ít hơn 2 GB.

Về PHP 7

 

Sau một thời gian phát triển lâu dài và hỗn loạn, PHP 6 đã hoàn toàn bị loại bỏ và thay thế bằng một phiên bản mới. Trước khi nó được phát hành vào năm 2015, PHP 7 hứa hẹn một hiệu suất tăng 100 phần trăm so với PHP 5. Lợi thế của nó so với các phiên bản trước đó là không thể chối cãi, nên thảo luận giờ đây đã chuyển sang cách PHP 7 chống lại HHVM.

Khi phân tích PHP 7 vs HHVM, điều quan trọng là lần đầu tiên lưu ý sự tương đồng của họ. Kể từ khi cả trình thông dịch PHP và HHVM đều thực thi mã PHP, quá trình viết mã thực tế là cơ bản giống nhau. Tất nhiên, trước khi bạn có thể sử dụng HHVM, bạn phải cài đặt nó trên máy chủ và gọi nó bằng lệnh HHVM.

Sự khác biệt lớn nhất khi nhìn vào PHP 7 vs HHVM là làm thế nào để cùng giải mã PHP. PHP 7 trực tiếp giải mã và thực thi mã trên máy chủ bằng cách sử dụng thông dịch viên PHP tiêu chuẩn, đó là miễn phí cho tất cả mọi người. Việc tạo ra HTML code được truyền đến các người và sau đó hiển thị cho người dùng web.

HHVM, mặt khác, chuyển đổi mã PHP vào bytecode Hip Hop trước khi dịch nó thành mã máy và thực hiện nó. Trong bản dịch này, sự thiếu hiệu quả trong các mã PHP được bỏ qua, dẫn đến hiệu suất nhanh hơn.

Ưu điểm của PHP 7

  • Giới hạn xử lý requests của PHP 7 là gấp đôi PHP 5.6, và nó đáp ứng từng request nhanh hơn.
  • Tính năng ngôn ngữ lập trình mới bao gồm cú pháp thống nhất biến, kiểu trả gián tiếp, và các toán tử mới.
  • Bằng cách thay đổi như thế nào trong nội bộ xử lý dữ liệu, PHP 7 là hơn 3,5 lần bộ nhớ hiệu quả hơn so với PHP 5.6.
  • Nhiều cộng đồng được thành lập tại đó có thể giúp các nhà phát triển với xử lý sự cố PHP và hỗ trợ kỹ thuật khác.

Nhược điểm của PHP 7

  • Một số tính năng của PHP 4 không còn được hỗ trợ.
  • PHP là kém hơn HHVM trong nhiều số liệu hiệu suất nhưng không phải tất cả.
  • Một số themes và plugins chưa tương thích với PHP 7.
  • Do hạn chế của nó, PHP 7 không phải là lý tưởng cho những trang web có lưu lượng truy cập cao như Facebook.

PHP 7 vs HHVM: So sánh tốc độ

Nếu bạn tìm kiếm trên internet để so sánh hiệu suất liên quan đến PHP 7 vs HHVM, bạn có thể thất vọng khi thấy các báo cáo mâu thuẫn nhau, đó là lý do tại sao điều quan trọng là phải chú ý đến phương pháp luận khi nhìn vào điểm chuẩn. Không ai có thể phủ nhận rằng cả hai PHP 7 và HHVM bao la tốt hơn các phiên bản cũ hơn của PHP; Tuy nhiên, có một số trường hợp trong đó PHP 7 nhanh hơn HHVM, và có một số trường hợp mà ngược lại là sự thật.

Hàng chục các biểu đồ benchmark về PHP 7 vs HHVM đã được công bố cho một số ứng dụng và framework. Ví dụ, “The Definitive PHP 7.0 & HHVM Benchmark” từ Kinsta so sánh màn trình diễn của PHP 5.6.16, PHP 7.0 và HHVM 3.10.1 trên một vài software phổ biến. Dưới đây là một vài trích đoạn (cho WordPress và Drupal) nêu rõ các kết quả từ các bài của Kinsta hiển thị các số liệu so sánh giữa PHP 7 và HHVM.

HHVM vs PHP7: WordPress 4.4

Bằng cách sử dụng nội dung dummy từ wptest.io, Kinsta benchmarked trang chủ cho 60 giây với 15 người dùng đồng thời. Họ cũng sử dụng chế độ Repo Authoritative HHVM cho thử nghiệm này, nhưng các tác giả lưu ý rằng việc sử dụng chế độ này trong các ứng dụng khác có thể yêu cầu sửa đổi sâu rộng, vì vậy lợi ích của tốc độ thêm có thể không luôn luôn có giá trị thời gian cần để làm cho tất cả các thay đổi cần thiết. Dù bằng cách nào, HHVM xuất hiện để đáp ứng nhanh hơn PHP 7 như thể hiện trong biểu đồ dưới đây.

Lưu ý rằng bỏ opcache trong PHP 7 kết quả trong giảm mạnh trong hoạt động. Khi Kinsta chạy cùng PHP 7 vs thử nghiệm hiệu suất HHVM trong WordPress 4.3.1 trong các trường hợp tương tự, họ có kết quả gần như giống hệt nhau.

Tuy nhiên, một blogger từ WPOven Blog đã chứng thực rằng PHP 7 có thể thực hiện nhiều truy vấn mỗi giây theo Plugin WP Performance Tester:

Các blogger cùng chạy so sánh tốc độ khác nhau giữa PHP 7 và HHVM trên WordPress sử dụng phương pháp riêng của họ.

HHVM vs PHP7: Drupal 8.0.1

Sau cùng bài Kinsta, họ cũng so sánh PHP 7 vs HHVM sử dụng Drupal CMS. Điểm chuẩn một trang Drupal tiêu chuẩn cho 60 giây với 15 người dùng đồng thời mang lại những kết quả như sau:

Báo cáo này đã nhận được một số lời chỉ trích vì đã không nói một câu chuyện hoàn chỉnh. Blogger Jeff Geerling lưu ý rằng việc cài đặt tiêu chuẩn cho Drupal 8 đã nhớ cache kích hoạt như một thiết lập mặc định. Vô hiệu hóa bộ nhớ cache có thể cho kết quả khác nhau. Xem bài viết trên blog của anh ấy để biết thêm về PHP 7 so sánh hiệu suất với HHVM trong các tình huống khác nhau.

Kinsta cũng đã thử nghiệm PHP 7 vs HHVM trên một vài CMS khác bao gồm các Magento 2 community edition, October CMS, và Pyro CMS. Họ thực hiện 3 thử nghiệm bổ sung cho thấy HHVM thực hiện tốt hơn so với PHP 7.

Một thử nghiệm hiệu suất khác cho thấy PHP 7 là nhanh hơn so với HHVM đối với Laravel 5.1 kết quả PHP 7 cung cấp 1363,24 transactions mỗi giây trong khi HHVM là 1128,41 transactions mỗi giây.

 

PHP 7 vs HHVM: Ai là người chiến thắng?

Bất cứ ai cũng quen với PHP 5 sẽ nhận thấy những cải tiến dố làm cho PHP 7. Tuy nhiên, các trang web WordPress HHVM tiêu thụ ít tài nguyên CPU, cho phép nhiều giao dịch mỗi giây cho một số lượng lớn các yêu cầu đồng thời. PHP 7 và HHVM thực hiện về bình đẳng vào các bài kiểm tra thời gian tải trang web.

Sự lựa chọn tốt nhất cho bạn sẽ phụ thuộc vào khả năng của bạn và yêu cầu của bạn. Nếu bạn quản lý một Website mà nhận được một khối lượng lớn các hit đồng thời, HHVM có thể là một lựa chọn tốt hơn miễn là bạn có một máy chủ đa lõi có thể xử lý nó. Nếu không, PHP 7 nên là đủ cho hầu hết người dùng đang tìm kiếm hiệu quả cao hơn đáng kể so với PHP 5. Với tiếp tục hỗ trợ, PHP 7 hình dung có thể vượt qua HHVM hiệu suất cuối cùng.

Như chúng ta có thể thấy PHP7 vẫn còn rất phổ biến về xu hướng tìm kiếm của Google trong khi so với HHVM.

Từ góc nhìn của một người sử dụng web điển hình, sự khác biệt về tốc độ giữa hai PHP7 và HHVM là hầu như không đáng chú ý. Tuy nhiên, trong khi tốc độ giao hàng là một yếu tố quan trọng trong kinh nghiệm người dùng, nó không phải là điều duy nhất có vấn đề.

Đối với các nhà phát triển đã được sử dụng PHP trong nhiều năm, PHP 7 sẽ cảm thấy rất quen thuộc, do đó, có ít hoặc không có trở ngại trong việc tìm hiểu để vượt qua. Nếu bạn đang cân nhắc chuyển một trang web hiện có của PHP 5 đến PHP 7 hoặc HHVM, quá trình này có thể đi nhanh hơn nếu bạn chọn PHP 7 vì các nhà phát triển có kinh nghiệm sẽ biết làm thế nào để thiết lập nó và cấu hình nó.

Một lợi ích khác của PHP 7 là Nhóm PHP đã tồn tại trong một thời gian dài, và mục đích của nó là để hỗ trợ các nhà phát triển. HHVM là mới hơn và được thiết kế để hỗ trợ Facebook, và những gì tốt nhất cho Facebook không nhất thiết phải là tốt nhất cho tất cả mọi người khác. Một số nhà phát triển đã bày tỏ sự thất vọng với HHVM và thấy mình cần phải “làm việc xung quanh nó” để có được công việc của họ thực hiện. Mặt khác, bất cứ ai có thời gian để tìm hiểu HHVM sẽ có một công cụ rất mạnh mẽ theo ý của họ.

Đối với HHVM

  • Nhờ khả năng dịch động, HHVM có thể thực hiện nhanh hơn trong các điều khoản của giao dịch mỗi giây hơn PHP 7 trên nhiều ứng dụng, bao gồm cả WordPress.
  • Khi bắn phá bởi nhiều yêu cầu, HHVM tiêu tốn ít bộ nhớ hơn so với PHP 7 cần xử lý mỗi yêu cầu.
  • Các nhà phát triển đang tiếp tục phát hành cơ sở mã PHP để làm cho HHVM dễ tiếp cận hơn và tương thích với các khuôn khổ PHP và ứng dụng.
  • Mặc dù là một sự sáng tạo của nội bộ Facebook, HHVM là mã nguồn mở, vì vậy bất cứ ai có thể sử dụng hoặc thay đổi mã nguồn.

Đối với PHP 7

  • PHP 7 thực sự có thể làm tốt hơn HHVM khi chạy trên các ứng dụng nhất định.
  • Nhiều nhà phát triển nhận thấy PHP 7 dễ dàng hơn để thiết lập, cài đặt và sử dụng.
  • Code được viết bằng PHP 5 sẽ hoạt động sau khi chuyển đổi sang 7, vì vậy bất cứ điều gì được viết trong thập kỷ qua sẽ được dễ dàng để chuyển đổi.
  • Các cộng đồng PHP có một kỷ lục ổn định của phiên bản ổn định và đáng tin cậy.

HHVM vs PHP 7: Sự lựa chọn là của bạn

Đừng quá do dự khi lựa chọn một trong hai. Chọn một mặt là bước đầu tiên hướng tới việc đạt được các mục tiêu phát triển của mình, và sớm hơn bạn thực hiện bước đầu tiên, sớm hơn bạn sẽ có một sản phẩm hoàn chỉnh. Để lại một trang web không hoạt động kém hiệu quả trên internet không thể sửa chữa có thể gây tổn hại đến uy tín của thương hiệu, đó là lý do tại sao bạn nên đảm bảo hiệu suất tối ưu càng sớm càng tốt. Không có vấn đề mà phía bạn đi trong PHP 7 vs HHVM cuộc tranh luận, mọi người đều đồng ý rằng cả hai đều là một bước tiến lớn lên từ PHP 5, do đó bắt đầu chuyển đổi đến một hay khác.

Techtalk via Viblo