2010-02-02 25 views
6

Các tin tức trong thế giới hôm nay là PHP Facebook's HipHop, trong đó:HipHop của Facebook - Nó là gì?

HipHop cho PHP không phải là về mặt kỹ thuật một trình biên dịch riêng của mình. Thay vào đó nó là một biến áp mã nguồn. HipHop lập trình chuyển đổi mã nguồn PHP của bạn thành C++ được tối ưu hóa cao và sau đó sử dụng g ++ để biên dịch nó. HipHop thực hiện mã nguồn theo cách tương đương ngữ nghĩa và hy sinh một số tính năng hiếm khi được sử dụng - chẳng hạn như eval() - để đổi lấy hiệu suất được cải thiện. HipHop bao gồm một máy biến áp mã, một reimplementation của hệ thống thời gian chạy của PHP, và viết lại nhiều phần mở rộng PHP phổ biến để tận dụng tối ưu hóa hiệu suất này.

Câu hỏi của tôi là, loại ứng dụng web nào thực sự hữu ích?

Có vẻ như các ứng dụng web bị ràng buộc bởi cơ sở dữ liệu điển hình có thể không được phục vụ nhiều bởi điều này, nhưng các ứng dụng có giới hạn CPU sẽ hiếm hơn.

+0

Có liên quan (nhưng không phải dupe): http://stackoverflow.com/questions/2055875/hiphop-php-was-hyper-php-by-facebook – Pops

+0

Tôi đã đọc những tin đồn về điều này cả tuần tôi rất vui vì nó cuối cùng cũng đã ra! Tôi đang làm việc trên một mạng xã hội và hiệu suất luôn luôn là điều lớn nhất với những loại trang web – JasonDavis

+0

Nó là một trình biên dịch, không? Nó biên dịch PHP thành C++. –

Trả lời

7

Các ứng dụng web xử lý nhiều và/hoặc sử dụng nhiều bộ nhớ. Rõ ràng HipHop này sẽ giảm mức sử dụng CPU khoảng 50% và cũng làm giảm mức sử dụng bộ nhớ (tôi không thấy mức độ sử dụng bộ nhớ sẽ bị giảm đi khi được đề cập ở bất kỳ đâu). Điều này có nghĩa là bạn sẽ có thể phân phối cùng một số yêu cầu với ít máy chủ hơn.

Lợi ích bổ sung có thể là sẽ có một số loại kiểm tra cơ bản để đảm bảo rằng mã nhất quán trước khi được biên dịch. Điều này sẽ giúp xác định loại lỗi mà PHP hiện có xu hướng bỏ qua do hệ thống kiểu yếu của nó.

Nhược điểm có vẻ là nó có thể không hỗ trợ một số tính năng động hơn của PHP như eval (mặc dù cho rằng đó là một tích cực quá).

+2

Tôi tự hỏi làm thế nào nó sẽ đối phó với 'new $ class' là tốt. –

+0

Josh, tôi tự hỏi điều tương tự. – Jayrox

2

Chạy mã máy trên mã được giải thích nhanh hơn. Điều này rất hữu ích trong một ý nghĩa, nhưng cũng làm giảm số lượng máy bạn yêu cầu, vì mỗi bộ xử lý có ít việc phải làm hơn.

Điều này tốt cho một công ty như Facebook, ở chỗ họ có thể cắt giảm số lượng máy họ cần.
Về lý do tại sao nó hữu ích cho họ, họ có thể chạy rất nhiều phân loại và lập chỉ mục, trên một lượng lớn dữ liệu mà họ có.

4

Vâng, nó "chuyển đổi" PHP thành C++ để giúp thực hiện một trang web có khả năng mở rộng lớn.

Vì vậy, HipHop là khi bạn có một trang web mà bạn bắt đầu tại Harvard, bạn nhanh chóng phát triển thành một công ty tỷ đô la và mọi người đang làm một bộ phim về sự tham gia của Justin Timberlake. Khi bạn có một trang web như vậy và muốn tiết kiệm chu kỳ CPU, nhưng không muốn viết lại codebase của bạn, bạn sử dụng HipHop.

Nếu bạn mới bắt đầu, trừ khi bạn đang bị mắc kẹt trên một hòn đảo sa mạc chỉ với những người lập trình PHP từ chối học một ngôn ngữ có thể mở rộng hơn, bạn không sử dụng HipHop.

+0

Thật không công bằng khi nói PHP không mở rộng quy mô. Mặc dù dự án này không giúp ích cho bản mẫu! – alex

+0

TBH Tôi thậm chí không biết nếu nó có cân hay không - Digg sử dụng nó, vì vậy nó phải quy mô khá tốt, eh? Tôi đã chỉ đi theo bất cứ điều gì phát hiện Facebook dường như đã được thực hiện. – bpapa

+2

Facebook có vấn đề là trang web được truy cập nhiều nhất # 2 để tranh luận với! – alex

0

Bạn có thể coi nó như một trình biên dịch có trong một tệp .php, và tạo ra một loạt các tệp C++ mà bạn có thể biên dịch bằng g ++ (Không chắc chắn nếu các trình biên dịch khác được hỗ trợ). Các exe kết quả là ứng dụng web của bạn với một máy chủ web bao gồm.Điều đó có nghĩa là bạn có thể chạy exe và bạn tốt để đi. Máy chủ web dựa trên libevent và được cho là khá hiệu quả.

0

Hip Hop về cơ bản là vô nghĩa đối với tất cả mọi người trừ Facebook và các trang web dựa trên PHP khổng lồ khác. Tôi chắc rằng nhiều người sẽ nhảy trên bandwagon do "nó nhanh" nhưng có bao nhiêu ứng dụng dựa trên PHP sử dụng toàn bộ các trang trại máy chủ? Chỉ vì bạn đang làm việc trên một trang mạng xã hội, không có nghĩa là bạn nên cân nhắc sử dụng HH.

Các vấn đề liên quan