2009-08-23 12 views
45

Tôi nghe một tin đồn, rằng Java tiêu thụ ít năng lượng hơn PHP và tự hỏi liệu điều này có đúng không. Tôi hiện đang làm việc trong một công ty nơi chúng tôi căn cứ hầu hết các ứng dụng của chúng tôi trên PHP. Tiêu thụ điện năng chưa bao giờ là vấn đề đối với chúng tôi, nhưng chúng tôi đang làm việc trên các dự án lớn hơn, nơi nó có thể quan trọng. Chúng tôi yêu PHP cho phát triển web và đang tự hỏi làm thế nào một tin đồn như vậy có thể lây lan và nếu nó là sự thật ở tất cả.PHP và Java có sự khác biệt về mức tiêu thụ năng lượng?

Ví dụ tôi nghe nói là Facebook đang chuyển đổi chính xác lý do đó sang Java (tôi dường như không thể tìm thấy bất kỳ nội dung nào trên Google mặc dù).

Vì khách hàng của tôi đang hỏi tôi câu hỏi này, tôi rất thích bằng chứng nếu nó là sự thật.

+0

Wow Tôi thực sự không mong đợi sự náo động này :) – Thomaschaaf

+0

Tôi có nên chấp nhận một câu trả lời không? Tôi không thực sự muốn ... – Thomaschaaf

+0

Vậy thì đừng. Bạn có thể tóm tắt một số câu trả lời có liên quan nhất (đối với bạn) trong câu hỏi để đưa ra một số kết luận nếu bạn muốn. –

Trả lời

9

Tôi đã rất ngạc nhiên bởi câu hỏi này cho đến khi tôi thực hiện tìm kiếm trên Google, đã biến số this lên. Đó là một vấn đề nghiêm trọng, một vấn đề mà tôi không nghĩ tới.

Bây giờ tôi đang nghĩ về nó, tôi nghĩ rằng nó sẽ trở thành một vấn đề của những người trả tiền điện. Chiến lược Java của Sun là về việc bán các máy chủ: sắt lớn cho các khách hàng trở lại, mỏng cho giao diện người dùng.

Có lẽ các công nghệ như Flex di chuyển nhiều công việc trở lại cho khách hàng và để chúng với tỷ lệ lớn hơn của hóa đơn tiền điện.

Nhưng tôi rất ngạc nhiên khi thấy thứ hạng ngôn ngữ bằng cách sử dụng năng lượng.

Một câu hỏi rất thú vị. Tôi đang bỏ phiếu.

Thật là một vấn đề hấp dẫn. Sẽ không thú vị khi viết một ứng dụng bằng một số ngôn ngữ, triển khai chúng trên phần cứng giống hệt nhau và đo mức tiêu thụ điện năng? Tôi rất muốn nhìn thấy nó.

Nếu bạn thực sự phát điên, công cụ giám sát hiệu suất, ngoài việc hiển thị cho bạn nơi bộ nhớ và CPU được tiêu thụ trong mỗi phần của ứng dụng, cũng sẽ cho bạn thấy nơi năng lượng được sử dụng nhiều nhất?

Bây giờ tôi ước tôi có thể bỏ phiếu lại câu hỏi này.

4

Giống như nhiều câu hỏi so sánh ở đây, có thể bạn sẽ cần phải tìm ra điểm chuẩn để thực sự xác định xem đó có phải là sự thật hay không.

lesswatts.org has a bit of information on applications power management, cũng như một số khía cạnh khác về mức tiêu thụ điện năng trên các hệ thống Linux. Như một lưu ý phụ, chúng dường như đang sử dụng PHP, do đó có thể đáng giá một cái gì đó trong chính nó :)

Chúng lặp lại rằng bạn nên sử dụng PowerTOP để xác định ứng dụng nào đang gây ra mức tiêu thụ năng lượng nhiều nhất và bạn có thể nhìn thấy ảnh chụp màn hình mà họ đang kiểm tra wakeups từ nhàn rỗi, ít nhất.


Hầu hết thời gian, máy chủ web đang ở chế độ chờ, sau đó nó "phục vụ" trong giây lát, sau đó quay lại chờ kết nối tiếp theo. Về vấn đề đó, PHP sẽ đóng góp rất ít cho toàn bộ quá trình: chỉ phần phục vụ. Vì vậy, tôi tự hỏi liệu điểm chuẩn thực tế có phải là sự so sánh của một máy chủ web dựa trên Java cụ thể so với Apache/PHP phục vụ các trang tương tự hay không. Nếu đó là trường hợp, nó không thực sự là một so sánh công bằng của PHP và Java - một trong hai người được coi là phục vụ một trang thực tế chỉ hoạt động trong mili giây tại một thời điểm, thông thường. Tôi sẽ nghĩ rằng máy chủ web thực sự, một trong những người lựa chọn hoặc bỏ phiếu kết nối, là một trong đó sẽ được hogging sức mạnh.

3

Tiêu thụ năng lượng có nghĩa là tiêu thụ điện năng của Watts?

Tôi không chắc chắn 100%, nhưng ngay cả khi điều này là đúng, tôi nghĩ điều này cũng tương tự như tối ưu hóa một phần mã của bạn, được thực hiện trong 0,01% thời gian chạy chương trình của bạn.

Sự cố sẽ xảy ra do chuyển đổi (thay đổi nền tảng sản xuất/phát hành, mất thời gian học đường cong, chi phí phần mềm kinh doanh mới, v.v.) sẽ khá quyết liệt. Tôi không thể thấy một quyết định quan trọng như vậy được thực hiện, ngoại trừ sau nhiệm vụ phân tích kinh doanh nghiêm túc và cụ thể của công ty và kết quả tương ứng của nó.

Tuy nhiên, điều này sẽ tạo ra một cuộc thảo luận thú vị.

29

Máy tính không đặc biệt quan tâm nếu chúng đang thực thi Java hoặc PHP. Tiêu thụ điện năng là khá nhiều như nhau. Câu hỏi sau đó trở thành câu hỏi về hiệu suất - nếu bạn có thể phục vụ nhiều yêu cầu hơn với một máy chủ, bạn sẽ cần ít máy chủ hơn và tiêu thụ ít năng lượng hơn. Hoặc cách khác, nếu bạn không thực hiện các ứng dụng quy mô web, hãy phục vụ yêu cầu của bạn nhanh hơn và dành nhiều thời gian rảnh hơn, tiêu thụ ít năng lượng hơn.

Với Java thuần túy và thuần túy PHP, Java như một ngôn ngữ JIT'ed được nhập tĩnh là tất nhiên nhanh hơn. Câu hỏi đặt ra là bạn có thể làm nhanh hơn cho các thành viên nhóm và nỗ lực phát triển có sẵn cho bạn. Tôi là cách tốt nhất là trộn các ngôn ngữ, sử dụng các công cụ cơ sở hạ tầng dựa trên Java hiện có, như Terracotta để xây dựng các phần quan trọng và một cái gì đó nhanh nhẹn để xây dựng phức tạp nhưng không phải là logic kinh doanh và trình bày nặng.

+2

"Máy tính không đặc biệt quan tâm nếu chúng đang thực thi Java hoặc PHP" - một khi chúng ta xuống cấp độ ngôn ngữ lắp ráp thì không quan trọng. Nhưng kiến ​​trúc không thể là một yếu tố quyết định? Từ một quan điểm nhiệt động lực học, không thể sinh ra một sợi nhẹ có năng lượng hiệu quả hơn CGI phải khởi động một bản sao thực thi trùng lặp để hoàn thành nhiệm vụ tương tự? Tài nguyên được chia sẻ có khái niệm hiệu quả hơn không? Tôi nghĩ rằng họ có thể được. Câu hỏi thú vị là: bạn phải đi bao xa? – duffymo

+0

Nếu tài nguyên được chia sẻ mang lại cho bạn nhiều hiệu suất hơn thì nó tiết kiệm năng lượng hơn. Về mặt khái niệm khả năng chia sẻ tài nguyên cung cấp nhiều tùy chọn hơn để tối ưu hóa. –

+0

Câu trả lời hay nhất của nhóm. Cần thêm phiếu bầu! Có rất nhiều yếu tố để tiêu thụ điện năng. Các biện pháp tốt nhất thực sự là hiệu suất (cho phần cứng bằng nhau). Hiệu suất đo lường mức độ hiệu quả của ngăn xếp phần mềm sử dụng phần cứng mà nếu bạn lật nó lại có nghĩa là phần mềm hoạt động cao hơn sử dụng ít phần cứng hơn để hoàn thành một nhiệm vụ, điều này có nghĩa là ít sử dụng năng lượng hơn. – tchen

17

Tôi thực sự nghi ngờ đó chỉ là vấn đề ngôn ngữ.

Các nền tảng được đề cập có nhiều thay đổi để hiển thị bất kỳ tranh luận so sánh chung nào. Để đặt tên cho một vài điểm biến đổi.

  • Servlet container cho Java (Tomcat, Glassfish, Websphere, Jetty, ...)
  • Web server cho PHP (Apache, IIS, lighttpd, nginx, ...)
  • cache Opcode cho PHP
  • Libraries và framewokrs sử dụng
  • hệ điều hành
  • đĩa cứng liên quan đến
  • Cooling
  • Al gorithms trên ứng dụng chính nó

Tôi thực sự nghi ngờ bạn có thể cô lập quá nhiều biến thành một số liệu hữu ích. Tối đa, bạn có thể chọn hai ứng dụng tương đương (lưu ý tất cả các lựa chọn của nền tảng) bằng cách sử dụng cùng phần cứng và so sánh chúng. Sau đó cải thiện tồi tệ nhất cho đến khi nó đứng tốt hơn. Việc đo lường thích hợp sẽ là cả hai watt mỗi giờ và yêu cầu mỗi giây, tôi nghĩ.

Có gì lưu ý trong Ants' answer (upvote anh ta) là điểm rất quan trọng mặc dù: nền tảng thực hiện tốt hơn sẽ luôn có nhiều năng lượng hiệu quả, nếu có đủ nhu cầu, bởi vì nó sẽ có thể phục vụ cùng một số lượng yêu cầu với ít phần cứng.

Nhưng nền tảng nào hoạt động tốt hơn không chỉ phụ thuộc vào ngôn ngữ, phụ thuộc vào những điều đã lưu ý ở trên (và một số chi tiết khác).

2

Tôi hiểu rằng nhiều công ty lớn gặp khó khăn trong việc tăng trưởng nhu cầu về các resouces trong trung tâm dữ liệu của họ. Chúng bao gồm cả không gian sàn và mức tiêu thụ điện năng. Vì vậy, tôi cũng có thể tin rằng hợp lý hóa các applciations, ủng hộ tiêu thụ tài nguyên thấp là một chiến lược đang được áp dụng.

Việc sử dụng Java, PHP hay bất kỳ công nghệ triển khai nào khác có thể là yếu tố quyết định tiêu thụ điện ít rõ ràng hơn đối với tôi.

Nếu chúng tôi triển khai một phần chức năng cụ thể tối ưu hóa để tiêu thụ tài nguyên, ví dụ, Interpreted Basic, Java và C, chúng tôi mong đợi sẽ cần hầu hết các tài nguyên thực thi.

tôi sẽ cần phải nhìn thấy một số bằng chứng cứng, nhưng tôi có thể tin rằng một ngôn ngữ giải thích tinh khiết có thể tiêu thụ nhiều hơn, Java, và ngay cả với JIT vv nó lần lượt có thể tiêu thụ nhiều hơn C.

Bây giờ chỉ cần giả sử (hoàn toàn là giả thuyết, tôi không nói đây là trường hợp) rằng nó là nhiều nỗ lực để phát triển trong C hơn là trong Java, và nhiều nỗ lực để phát triển trong Java hơn là trong Cơ bản. Làm thế nào bạn có thể giao dịch với nỗ lực phát triển và bảo trì chống lại việc tiêu thụ tài nguyên đó?

Thực sự khó thực hiện. Nếu ai đó nói với tôi rằng họ đã chuyển sang Java soleley trên cơ sở tiêu thụ điện năng tôi thực sự muốn biết nhiều hơn nữa. Các chi phí khi làm như vậy là gì? Đâu là điểm hòa vốn? [BTW - Tôi làm việc gần như độc quyền trong Java, tôi rất muốn có thể nói "chúng tôi thắng, xem chúng tôi có năng lực thấp như thế nào!"]

1

Đây là câu hỏi giống như ngôn ngữ nào có hiệu suất tốt nhất. Bây giờ, đối với hầu hết mọi dự án, hầu hết các lập trình viên đều liên lạc được với họ. Làm thế nào bạn viết hệ thống bằng cách outweighs các công nghệ được sử dụng (cho rằng hệ thống được speced ok).

Sự lựa chọn hiệu suất wrt ngôn ngữ là imho cho các hệ thống và nhà khoa học được nhúng. Bạn chọn ngôn ngữ theo những gì vấn đề để giải quyết, rất hiếm khi cho cpu hiệu quả như thế nào.

Một lần nữa, đó là cách bạn thiết kế và viết hệ thống xác định mức độ hiệu quả của nó.

2

Đây là câu hỏi khó trả lời trừ khi, như đã được đề cập về điểm chuẩn, bạn đặt một số quy tắc để so sánh.

Ví dụ: so sánh một game bắn súng Java3D đầu tiên với trang web PHP sẽ không công bằng, vì Java sẽ mất.

Nếu bạn nhìn vào các khuôn khổ Java, sau đó bạn có thể muốn so sánh các ba: Tomcat + JDK 6 + JSP Apache + PHP Scala + khuôn khổ Lift

tôi bao gồm Scala vì nó biên dịch để java bytecode và Tôi hy vọng nó sẽ rẻ nhất cho quyền lực.

Tôi không chắc chắn điều gì sẽ là người chiến thắng, tôi sẽ đặt cược vào Scala, nhưng bạn sẽ muốn đảm bảo rằng bạn có cùng một ứng dụng được triển khai và sau đó chỉ cần so sánh mức sử dụng năng lượng.

PHP có thể sẽ giành chiến thắng dưới dạng apache và PHP có vẻ thấp hơn khi sử dụng bộ nhớ so với Java, nhưng tôi thực sự không thể so sánh Scala và PHP.

Điều chưa biết đối với tôi là nếu bạn gọi cùng một mã java thì nó đã được chuyển thành mã gốc và do đó sẽ chạy nhanh hơn, nhưng JSP nên được biên dịch trước để tận dụng lợi thế của Java.Tuy nhiên, nếu bạn sử dụng công nghệ Web2.0 thì nó thay đổi, khi bạn đặt hầu hết tải trên trình duyệt, nếu bạn có một ứng dụng javascript lớn, thì bạn chỉ cần thực hiện các cuộc gọi trên máy chủ, máy chủ khi công việc kết xuất được truyền vào trình duyệt. Vào thời điểm đó, JIT cho Java sẽ đi vào hoạt động, và Java hoặc Scala tôi mong đợi sẽ thấp hơn khi sử dụng năng lượng. Một thử nghiệm lớn, IMO, sẽ là để xem liệu chúng ta có thể có được hiệu suất tương tự khi chúng ta giảm kích thước của máy hay không, vì vậy, nếu bạn cần 3 máy tính cho PHP hoặc Java, cân bằng tải và 1 Scala máy có thể có hiệu suất tương tự, sau đó scala (sử dụng Lift) sẽ giành chiến thắng.

2

Hiệu quả năng lượng là toàn bộ trường. Đo hiệu suất thường là cách tốt nhất để đi (cho cùng phần cứng). Nếu phần cứng khác nhau đang được so sánh, thì đó là toàn bộ trò chơi bóng 'nother'. Vì vậy, với phần cứng tương tự, nếu ngăn xếp phần mềm có thể hoạt động tốt hơn so với chồng phần mềm khác, thì điều đó có nghĩa là ngăn xếp phần mềm hoạt động tốt hơn sẽ sử dụng ít năng lượng hơn "theo yêu cầu" so với phần mềm còn lại. Nếu sự khác biệt hiệu suất là đủ lớn để bạn có thể hợp nhất các máy chủ của mình thành ít hơn, thì đó là một chiến thắng lớn hơn nữa!

Có rất nhiều lý do khác nhau:

Trung tâm dữ liệu Hãy xem xét rằng các máy chủ được đặt tại các trung tâm dữ liệu mà được làm mát. Máy chủ tạo ra nhiệt và nhiệt cần phải được loại bỏ để bảo vệ phần cứng. Đơn vị A/C không có chi tiết vô hạn. Hiệu quả của chúng thường đi kèm với âm lượng. Vì vậy, nếu tôi giảm số lượng máy chủ của mình từ 2 xuống 1, tôi có thể đã tiết kiệm điện năng tiêu thụ của một máy chủ, nhưng có lẽ không nhiều trong chi phí làm mát. Nhưng nếu thay đổi kiến ​​trúc của tôi cho phép tôi cắt ra 100 máy chủ ... đó là khoản tiết kiệm lớn!

Phần cứng và thiết bị ngoại vi Sử dụng sức mạnh nhất hiệu quả SW stack và chạy nó trên một Pentium 4 server = ngu dốt;) Phần mềm tiết kiệm năng lượng nhất cũng không thể bù đắp cho phần cứng không hiệu quả. Một bài học thú vị ở đây là: "để cho những người phần cứng lo lắng về sức mạnh". Bạn lo lắng về việc đưa ứng dụng của bạn ra thị trường. Khi ứng dụng của bạn có thể tạo ra doanh thu, bạn luôn có thể mua 16-core CPU 5 hexa-deca mới nhất và ngay lập tức mang lại hiệu quả năng lượng của bạn;)

Virtualizaton Nếu ứng dụng của bạn là khối lượng thấp, củng cố nó thành một ảo máy chạy trên hệ thống đa lõi có thể sẽ giúp bạn tiết kiệm nhiều năng lượng hơn là viết lại nó trong ngăn xếp SW hiệu quả nhất về năng lượng và chạy nó trên máy chủ độc lập.

Thời gian lập trình Bạn cần người lập trình am hiểu về phần mềm "hiệu quả năng lượng cao nhất". Bạn phải xem xét nếu đó là công cụ thích hợp. Các lập trình viên sử dụng máy tính để phát triển phần mềm và cần thêm thời gian để phát triển (nếu chúng bị ràng buộc với các công cụ sai), thì càng có nhiều điện năng tiêu thụ. Chưa kể bạn sẽ phải trả tiền cho họ nhiều giờ hơn. Điều này thường ghi đè bất kỳ mối quan tâm tiêu thụ năng lượng nào vì chi phí ở đây cao hơn.

Nếu mối quan tâm duy nhất của bạn là tiết kiệm năng lượng, có, hãy sử dụng tất cả các dụng cụ trong túi để đưa bạn đến đó. Nhưng hầu hết thời gian, đó chỉ là một biến nhỏ trong sơ đồ tổng thể của mọi thứ, và cũng là ít nhất chi phí của bạn.

+1

Ít nhất là * chi phí * của bạn, với chi phí trên hành tinh. Tôi thực sự vui mừng những điều này đang được thảo luận trong mở lúc cuối :-) –

+0

Bạn lấy nó ra khỏi bối cảnh. Tôi đề cập đến quyền lực như thường là ít nhất của chi phí kinh doanh của bạn. Nhận xét của bạn cho thấy rằng việc giảm chi phí khác cũng không giúp ích cho hành tinh này. Đó chỉ đơn giản là không đúng sự thật. – tchen

2

Mã hiệu quả hơn sẽ tiêu thụ ít tài nguyên hơn, bao gồm cả quyền lực.Java nói chung có một thực hiện nhanh hơn, hiệu quả hơn, vì vậy tất cả các yếu tố khác là không đổi, Java có lẽ sẽ tiêu thụ ít năng lượng hơn trên máy chủ.

Nhưng tất cả các yếu tố khác không phải là hằng số. Không có gì thay đổi dựa trên quyết định sử dụng PHP hoặc Java của bạn. Ví dụ, Java mất nhiều thời gian để phát triển, có nghĩa là các lập trình viên Java có máy tính của họ lâu hơn, và việc sử dụng năng lượng của chúng từ đó có thể vượt quá số tiền tiết kiệm của bạn trên máy chủ.

Nếu bạn là Google, Amazon hoặc một số công ty khác phục vụ hàng tỷ yêu cầu mỗi ngày từ hàng nghìn máy chủ, tôi sẽ lo lắng về điều này. Nếu không, quy mô của bạn không đủ lớn để đưa ra bất kỳ xác nhận tích cực nào về tiêu thụ năng lượng, vì vậy bất kỳ quyết định nào bạn thực hiện đều có khả năng phản tác dụng vì nó hiệu quả vì không thể bao gồm tất cả các yếu tố liên quan.

Ví dụ có liên quan là một vài tháng trước khi tin đồn xoay quanh bạn có thể tiết kiệm năng lượng bằng cách đặt nền máy tính để bàn thành màu đen. Suy nghĩ là màu đen == không có ánh sáng, vì vậy bạn không sử dụng nhiều ánh sáng. Google (một trong số ít các công ty có đủ công suất sử dụng để thực hiện loại nghiên cứu này) đã thực hiện một số thí nghiệm và thực hiện một số nghiên cứu, và phát hiện ra rằng màn hình LCD tạo ra ánh sáng trắng bất kể cái gì và lọc nó bằng cách truyền dòng thứ hai qua các pixel theo một cách khác. Vì vậy, bằng cách đặt pixel thành màu đen, bạn đang đặt mức lọc thành tối đa, thực sự sử dụng năng lượng nhất có thể là. Nền máy tính để bàn tiết kiệm năng lượng nhất (ít nhất là trên màn hình LCD) là nền trắng. Tuy nhiên, kể từ khi nền màu trắng làm tổn thương mắt người, ít người thiết lập hình nền máy tính để bàn của họ trắng và tin đồn rằng nền đen tiết kiệm năng lượng vẫn còn phổ biến.

Vì vậy, để làm cho một câu chuyện dài ngắn, đáng lo ngại về điều này có khả năng làm hại nhiều hơn lợi.

0

Rõ ràng các kỹ thuật tính toán hiện đại sử dụng nhiều tài nguyên hơn trước đây, và điều này trực tiếp tương đương với mức tiêu thụ điện năng. Một khi chúng ta sử dụng một socket cũ để truyền dữ liệu nhị phân qua mạng và bộ vi xử lý 100Mhz sẽ xử lý nó, bây giờ chúng ta có một ngăn xếp phần mềm nơi dữ liệu được chuyển đổi thành văn bản XML, sau đó chuyển qua dịch vụ web trên http ổ cắm, và chúng tôi tự hỏi tại sao chúng ta cần một bộ xử lý 3Ghz với bộ đệm RAM để có được hiệu suất tốt :)

Vì vậy, điều duy nhất bạn có thể làm là làm cho mã của bạn hiệu quả hơn. Thông thường, điều này có nghĩa là sử dụng ngôn ngữ cấp thấp hơn và ít phụ thuộc vào các khung hoặc thư viện có mục đích chung. Chắc chắn không cố gắng xếp chồng ngăn xếp phần mềm nếu bạn không thể giúp nó.

Lập trình hiện đại không thích điều này - có sự thúc đẩy đối với năng suất lập trình viên, sử dụng lập trình viên rẻ hơn và mã kỹ thuật lại mọi lúc (nghĩa là viết lại) để mã dễ tạo (và đôi khi duy trì). Kết quả là, để có được sản phẩm tốt nhất, bạn cần phải cân bằng các yếu tố này. Cách tiêu chuẩn công nghiệp để làm điều này đơn giản là trộn các hệ thống theo cách sử dụng của chúng.

Hiện tại hiệu suất cuối cùng là mã C/C++ và năng suất lập trình cuối cùng có vẻ là ngôn ngữ kịch bản. Vì vậy, lý tưởng nhất của cả hai là viết logic kinh doanh chính của bạn trong một ngôn ngữ kịch bản như Python, và sử dụng nó để gọi chuyên dụng 'trợ giúp sức mạnh' được viết bằng C/C++. Nếu bạn cần nhiều hiệu năng hơn, bạn có thể viết nhiều mã hơn trong C/C++ cơ bản. Nếu bạn cần phát triển nhanh hơn RAD, hãy viết nhiều hơn bằng ngôn ngữ kịch bản.

Lời khuyên của tôi cho OP không phải là viết lại trong Java, nó có thể hoạt động tốt hơn tổng thể, nhưng bạn sẽ tốn rất nhiều nó có thể không đáng giá. Thay vào đó, lấy các bit chuyên sâu của ứng dụng của bạn và viết lại những ứng dụng đó hiệu quả nhất có thể và gọi chúng từ PHP hiện có của bạn.sau đó xem xét kiến ​​trúc tổng thể của bạn và giảm sự phụ thuộc của các giao thức và cấu trúc dữ liệu không hiệu quả. Ví dụ: nếu bạn thay thế XML bằng JSON, bạn sẽ thấy bạn có cùng chức năng nhưng ở một phần nhỏ kích thước dữ liệu và tài nguyên cần thiết để phân tích cú pháp và định dạng lại dữ liệu.

0

Trong khi nhiều khía cạnh liên quan đến câu hỏi này đã được khám phá sâu hơn ở đây, thì có ít nhất một vấn đề nữa cần xem xét.

Một ứng dụng web PHP điển hình sao chép rất nhiều nỗ lực từ yêu cầu này sang yêu cầu tiếp theo, đơn giản vì môi trường thực thi PHP (hoặc ngữ cảnh) không liên tục trên các yêu cầu.

Vì ứng dụng web Java điển hình không có khả năng duy trì trạng thái trực tiếp, không có thêm bước hoặc mất hiệu lực bộ nhớ cache, không cần, ví dụ, thực hiện truy vấn SQL trùng lặp kiểu PHP để tìm nạp thông tin tương tự cho mỗi yêu cầu. Thay vào đó, một ứng dụng web Java thường lưu trữ thông tin phức tạp cho phân tích hiện tại trong một cấu trúc dữ liệu gốc trên heap, được truy cập trong nano giây, thay vì theo mili giây.

Vì bộ vi xử lý phải làm việc ít hơn đáng kể để thực hiện các chức năng truy cập dữ liệu cơ bản này, công việc yêu cầu ít năng lượng hơn trên mỗi đơn vị giá trị khách hàng.