È una lingua compilata preferita per lo sviluppo web o un'interpretazione? [chiuso]

2

Come già sai ci sono lingue compilate e interpretate. Dal punto di vista delle prestazioni, che è meglio quando si visita un sito web? Un sito web che è stato sviluppato con una langauge compilata verrà caricato più velocemente ed eseguirà le azioni più velocemente come sarà?

Voglio raggiungere un punto in cui posso evitare di capire i passaggi richiesti nel sito compilato / interpretato per portarli sul palco! (in questo caso al browser dell'utente).

    
posta Goma 12.05.2011 - 01:27
fonte

4 risposte

11

Se hai una buona architettura generale, è insolito che la lingua faccia una grande differenza nelle prestazioni del sito web. Di solito la maggior parte delle volte va a recuperare i dati da quelli che hai memorizzato.

Tuttavia, quando fa la differenza, le lingue compilate di solito sono più veloci. Tuttavia questa differenza non è necessariamente inerente alla natura delle lingue compilate. Con le tecniche JIT, le lingue teoricamente interpretate potrebbero essere altrettanto veloci. Consulta il link per i dettagli e guarda i recenti miglioramenti in JavaScript per vedere questo essere messo in pratica.

    
risposta data 12.05.2011 - 01:38
fonte
7

Quasi tutti i siti Web non particolarmente efficaci vengono scritti utilizzando linguaggi interpretati (PHP, C # /. Net, Java, Python, Ruby e altri) poiché sono molto più facili da modificare, aggiornare, configurare ed eseguire i linguaggi compilati più popolari

Detto questo, Google.com, Amazon.com, Facebook.com sono costruiti su linguaggi compilati (C ++, forse con alcuni C, sicuramente combinati con un linguaggio interpretato per flessibilità). I primi due "potrebbero" essere stati sottoposti a scelte storiche (non c'erano alternative chiare al momento) ma la conversione da PHP a Il C ++ di Facebook.com (HipHop) dimostra che l'utilizzo di un linguaggio compilato può fare la differenza in termini di prestazioni / risorse .

Ancora devi avere ottimi motivi per usare il codice compilato per i siti web in quanto sono meno facili da modificare. Un esempio di un framework C ++ che indica chiaramente perché è stato fatto e quando dovrebbe essere usato è CPPCMS . Ecco la logica , che spiega chiaramente perché dovresti provare le lingue compilate in alcuni casi specifici. Principali motivi: prestazioni (elevate) e utilizzo di risorse inferiori rispetto alle alternative.

    
risposta data 12.05.2011 - 01:49
fonte
2

Non c'è una risposta generale alle tue domande. Senza conoscere l'applicazione esatta, il suo carico esatto e la sua esatta architettura, semplicemente non è possibile dire "lo scenario X sarebbe meglio risolto usando un linguaggio compilato e lo scenario Y sarebbe meglio risolto usando un linguaggio interpretato".

Ci sono fattori che contribuiscono molto di più (stiamo parlando di ordini di grandezza) a rendere un'applicazione web (più) performante rispetto alla scelta di una lingua o di un tipo di linguaggio (compilato e interpretato). Anche se è possibile misurare chiaramente, che un'applicazione che utilizza un linguaggio compilato è più veloce di una lingua interpretata (o viceversa), la domanda rimane ancora: ha importanza? La maggior parte delle volte nella tipica applicazione web viene spesa per ricevere e inviare dati via HTTP e attendere i risultati dal database.

È molto più tempo di qualsiasi cosa tu possa ottimizzare scegliendo una lingua specifica. Quindi se una richiesta nello scenario A richiede, diciamo 200 ms e scegliendo una lingua diversa è possibile ridurre tale tempo a 195 ms: è importante per l'utente? È importante per l'hardware? Molto più importante: cosa rinunci all'incremento della velocità? Forse è più veloce ma molto più difficile da leggere, capire ed estendere?

Quindi, no - in generale non dipende dal tipo di lingua scelta per implementare la soluzione.

    
risposta data 12.05.2011 - 09:32
fonte
0

Ciò che accade nel browser dell'utente è a carico dell'utente e del gestore del browser. La compilazione di Javascript sta diventando sempre più popolare, ma non hai alcun controllo su questo.

La velocità dei tuoi server potrebbe essere limitata da un bel po 'di cose. Alcune cose probabili sono le connessioni con gli utenti e le connessioni con i database. Se vuoi migliorare la velocità, trova il collo di bottiglia e risolvilo. Se l'utilizzo della CPU è del 30% mentre le connessioni Internet sono sommerse, migliorare la velocità dei programmi non farà quasi nulla. Allo stesso modo, se l'elaborazione del back-end è dominata dalle operazioni del database, l'accelerazione del codice aumenterà molto.

Se stai facendo un sacco di calcoli per colpo, allora è possibile che la velocità dell'applicazione stessa sia importante, e se puoi fare il calcolo in un linguaggio progettato come C ++ o Fortran potresti velocizzare le cose abbastanza per valga la pena Qui sto raccomandando di fare il calcolo in un linguaggio normalmente veloce, non il tutto. Un linguaggio come Python che gestisce le richieste e che trasmette le cose difficili ai moduli C ++ di solito andrà molto bene.

Normalmente, prima di farlo, mi piacerebbe fare uno stress test sul sistema per vedere se conta davvero. Esegui un server fino a quando non raggiunge il limite massimo e vedi dove è al massimo o quasi al massimo. Risolvi il problema se possibile e potresti provare di nuovo. Non preoccuparti di tipi specifici di prestazioni finché non hai buone ragioni per ritenerlo importante.

    
risposta data 13.05.2011 - 17:34
fonte

Leggi altre domande sui tag