Tiêu thụ bộ nhớ / CPU của Java vs PHP


8

Tôi làm việc trong một công ty dựa trên PHP. Có một dự án mà chúng tôi muốn tạo ra một dịch vụ phụ trợ. Các thành viên cao cấp ở đây sẽ dùng PHP, mặc dù nó chậm hơn Java. Điểm tranh chấp duy nhất của họ, rằng Java nặng hơn PHP về cả quan điểm tải bộ nhớ và cpu.

Jvm giống như một môi trường container, nếu bạn mang thêm hành lý thì nó sẽ tiêu tốn rất nhiều, nhưng dịch vụ chúng ta đang nói ở đây sẽ có độ phức tạp trung bình. Vì vậy, cơ hội là nó sẽ không đòi hỏi nhiều (hoặc sẽ?)

Tôi hiểu câu hỏi này dựa rất nhiều vào sự mơ hồ, tuy nhiên quan điểm của tôi là, đó có phải là trường hợp tương tự không? Đó là java đòi hỏi phần cứng nhiều hơn? Tôi chỉ muốn biết ý kiến ​​của tất cả những người bạn có kinh nghiệm về kịch bản thực tế trông như thế nào.



1
Một câu hỏi hay khác: stackoverflow.com/questions/3975691/ từ

2
Trong hầu hết các trường hợp, ngôn ngữ / nền tảng không phải là yếu tố quyết định khi nói đến tốc độ. Ví dụ, nếu bạn không điều chỉnh đúng cơ sở dữ liệu, nó sẽ chậm bất kể ngôn ngữ đang được sử dụng.
GrandmasterB

2
Tôi không thấy lý do tại sao Java sẽ chiếm nhiều CPU hơn PHP. Trong hầu hết các trường hợp, tôi mong đợi điều ngược lại, vì thông thường sẽ có ít chi phí khởi động hơn cho mỗi yêu cầu.
Darius X.

1
@ Shades88 Chà, sau đó, có lẽ bạn hoặc họ nên thử một bằng chứng nhỏ về khái niệm: một số mô-đun / phần mã mà họ nghĩ sẽ rất đói bộ nhớ và / hoặc chậm trong Java nên thực hiện bằng cả hai ngôn ngữ và xem cách nó hoạt động . Bạn (họ) có thể ngạc nhiên bởi những điều như: Nhu cầu bộ nhớ thêm của Java thực sự không nhiều so với những gì phiên bản PHP cần, phiên bản của Java có thể nhanh hơn đáng kể.
Shivan Dragon

Câu trả lời:


10

Nếu bạn lo lắng về tốc độ, hãy viết phần cuối bằng ngôn ngữ được biên dịch, nhanh như bạn muốn như C hoặc C ++. Có rất nhiều công cụ dịch vụ web để tạo các dịch vụ web C / C ++ đơn giản mà bạn có thể sử dụng từ các máy khách PHP của mình.

Tuy nhiên, nếu bạn muốn mã hóa nó nhanh chóng và hiệu suất không quá tệ, thì hãy viết nó bằng PHP. Bạn cũng có lợi ích là đã có các kỹ năng cần thiết để làm điều này, vì vậy đó là một phần thưởng gấp đôi.

Java không ồ ạt so với PHP, nó có thể là một 'bước tiến', nhưng bạn sẽ phải học tất cả những khúc mắc và thủ thuật mà bạn cần với bất kỳ hệ thống mới nào và tôi nghi ngờ lợi ích sẽ đáng giá so với chỉ cần viết nó trong PHP ngay lập tức. Trong hầu hết các trường hợp, nếu bạn đã có các kỹ năng để làm điều đó trong PHP, thì đó nên là lựa chọn đầu tiên, việc chọn làm nó bằng một ngôn ngữ khác với lĩnh vực chuyên môn chính của bạn nên được xem xét rất cẩn thận và chỉ được chọn nếu có xác định lợi ích trên hệ thống chính của bạn (mà tôi không nghĩ sẽ có trong trường hợp này)


Làm thế nào về việc biên dịch PHP?
Hồi giáo

1
sử dụng Hiphop hay Phalanger? Có thể hoạt động, nhưng tốc độ hướng dẫn CPU thường không phải là vấn đề hiệu năng lớn so với cách ngôn ngữ hoạt động - truy cập bộ đệm, sử dụng bộ nhớ và IO ngày nay quan trọng hơn. Dù bằng cách nào, bạn nhấn mạnh rằng PHP là một lựa chọn tốt hơn Java đối với họ.
gbjbaanb

1
Tôi nghĩ rằng nếu hầu hết trong số họ biết rõ về PHP và họ không cần hiệu năng rất cao, thì PHP là ngôn ngữ tốt nhất cho họ.
Виталий Олегович

1
Tôi ước mọi người sẽ ngừng đề xuất "biên dịch PHP". HipHop không biên dịch PHP. HipHop là một biến đổi mã nguồn từ PHP sang C ++ (Sau đó được biên dịch bằng trình biên dịch C ++). HipHop là một giải pháp để chọn ngôn ngữ sai cho nhiệm vụ.
Craige

2
@Craige: thật ra, HipHop không còn biên dịch thành C ++ nữa, giờ đây nó là một công cụ JIT thời gian chạy: github.com/facebook/hiphop-php/wiki
Joeri Sebrechts

4

Nhiều cửa hàng Java doanh nghiệp có xu hướng thêm rất nhiều trừu tượng và khung (như ORM, EJB, spring, libs phần ba, container, v.v.) vào hệ thống của họ. Đôi khi những trừu tượng này có ý nghĩa, nhưng thường thì cuối cùng chúng lại thêm sự phình to (bộ nhớ, cpu) và độ phức tạp.

PHP, otoh, có thể được sử dụng khá nhiều "nguyên trạng", mụn cóc và tất cả. Nhưng với Java, bạn chắc chắn cần phải sắp xếp nhiều phần hơn nữa.

Vì vậy, bạn cần phải tính đến những điều khác trước khi đưa ra quyết định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.