Domanda

Supponendo che un programma è scritto in 2 lingue diverse:

  1. In un linguaggio interpretato dal codice sorgente (PHP per esempio)
  2. In un linguaggio interpretato da bytecode (Java per esempio).

Il programma due fanno esattamente la stessa (per semplicità, consente di dire che sia appena uscita una riga di testo).

Lingua Will (2) essere più veloce (1)?

Posso concludere che in teoria, in un caso in cui due siti offrono le stesse funzionalità, ma uno costruito con PHP, mentre l'altro con Java (JSP), il sito in base Java sarà più veloce?

Joel

È stato utile?

Soluzione

No, non c'è nessuna garanzia su questo a tutti. Fa parte del normale processo di compilazione per produrre un bytecode intermediario. PHP va solo fonte -> bytecode -> esecuzione tutta d'un fiato, mentre Java va fonte -> File -> bytecode -> esecuzione. Non c'è molta differenza. La differenza principale verrà in backends- quanto sia efficace è il JIT appoggiando entrambe le lingue, come gran parte del programma è statico rispetto dinamici (i tipi, per esempio).

Ancora più importante, il tempo trascorso e il download dei pacchetti necessari o interazioni di database sarà probabilmente dominare la performance del sito web, non la lingua supporto.

Altri suggerimenti

Per testo interpreti di codice contro byte, in generale, il "più veloce" sarà in quello con più tecnologia speso compilare il codice sorgente in codice macchina ottimizzato. Ciò presuppone che la quantità di calcolo per fare domina la quantità di tempo necessario per "compila" il codice.

Fro Web pagine, può o non può importa molto, dal momento che le pagine web non possono avere un sacco di calcolo da fare. (La maggior parte delle pagine web passano il loro tempo in attesa di input da parte dell'utente :) Per un esempio la linea, non credo cure nessuno.

Per PHP vs Java, penso che troverete che Java è un vincitore a mani basse in termini di velocità complessiva. Il compilatore PHP HipHop è un tentativo di recuperare il ritardo con le capacità generali Just-in-time del compilatore della maggior parte delle implementazioni Java.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top