Perché i miei programmi java girano più velocemente in eclissi che in BlueJ?

4

Ho programmato per circa 2 anni, e finora Java è tutto ciò che so.

Quando ho fatto il passaggio da BlueJ a Eclipse ho notato che i miei vecchi progetti venivano eseguiti molto più velocemente. Quale sarebbe la ragione per questo, per quanto ne sapevo che l'esecuzione del codice byte java è gestita dalla JVM e avevo ancora la stessa JVM dopo che ero passato. Oltre a questo eclipse ha avuto un compilatore diverso? Questa è l'unica altra cosa che potrei pensare.

Modifica

L'ho cronometrato, il runtime medio per, lo chiameremo A (100), in blueJ era 1 minuto; 8 secondi; 846 millisecondi. In eclissi A (100) impiegavano solo 8 secondi; 459 millisecondi. Ho notato anche l'aumento di tutti i miei altri programmi. Non li ho ancora misurati, ma la differenza è sicuramente notevole.

A () è una funzione che fa un sacco di calcolo rispetto alle stampe di un grafico di informazioni basato su ciò che ha trovato, fyi.

    
posta Ryan Stull 10.07.2011 - 03:13
fonte

1 risposta

5

Penso che la ragione principale sia che BlueJ esegue il tuo codice in una VM con un debugger collegato. BlueJ ha in realtà due macchine virtuali in esecuzione: quella principale e quella con il codice all'interno (la VM utente, ovvero la VM di debug). La VM principale ha un debugger collegato alla VM dell'utente, che gli consente di fare cose come mettere in pausa il codice utente, ispezionare lo stato degli oggetti e di tutti i tipi. Immagino che questo probabilmente aggiunga un bel po 'di overhead (forse inibendo la compilation JIT?); la velocità che il codice esegue non è una preoccupazione importante per un ambiente di apprendimento come BlueJ, a patto che sia ragionevole.

    
risposta data 11.07.2011 - 13:16
fonte

Leggi altre domande sui tag