3

假設一個程序寫入2種不同的語言:語言在網絡從源代碼解釋字節碼與

  1. 在從源代碼(PHP例如)解釋的語言從字節碼解釋
  2. 在語言(例如Java)。

這兩個程序完全相同(爲簡單起見,可以說他們都只是輸出一行文本)。

語言(2)比(1)快嗎?

我可以得出結論:理論上,在兩個站點提供相同功能的情況下,一個使用PHP構建而另一個使用Java(JSP)時,基於Java的站點會更快?

喬爾

+3

1.關於語言,甚至PHP都沒有嚴格的解釋。有些語言(包括PHP)對於首先編譯爲某種字節碼(即,在默認情況下它們在執行後丟棄字節碼)並不明顯,但它仍然是字節碼。 2.關於語言實現性能方面有更重要的事情,比如保持虛擬機開銷低,擁有一個聰明的JIT和GC,是靜態的(合法輸入的),所以在運行時不需要做什麼等等。 – delnan 2010-12-10 15:56:34

回答

2

不,沒有關於這方面的保證。它是生成中間字節碼的正常編譯過程的一部分。 PHP只是一步一步地執行源代碼 - >字節碼 - >執行,而Java則執行源代碼 - >文件 - >字節代碼 - >執行。沒有太大的區別。主要區別將在後端 - JIT支持兩種語言的效果如何,程序的多少是靜態還是動態(例如類型)。

更重要的是,花費和下載必要的數據包或數據庫交互的時間可能會主導網站性能,而不是支持語言。

1

對於文本對字節碼解釋,在一般情況下,「更快」一將是一個與花編譯源代碼,以優化的機器代碼的技術。這假定計算的數量決定了編譯代碼所花費的時間。

fro web頁面,它可能會也可能沒有關係,因爲您的網頁可能沒有太多的計算要做。 (大多數網頁花費他們的時間等待用戶輸入:)對於你的一個例子,我不認爲有人在意。

對於PHP與Java,我認爲你會發現Java在總體速度方面是一個失敗的贏家。 PHP HipHop編譯器試圖趕上大多數Java實現的通用即時編譯器功能。