Eclipse esegue il mio programma java 6 volte più veloce ... Posso ottenere questa prestazione senza usarla?

8

Ho scritto un programma java che genera tutte le permutazioni ripetitive in base ai caratteri e alla lunghezza data.

Quando eseguo il mio codice in Eclipse, genera un file con 1.000.000 di permutazioni in soli 15 secondi. Eppure se eseguo il programma sulla stessa macchina nel prompt dei comandi usando "permutazione java" ci vogliono 1 minuto e 35 secondi per generare le stesse permutazioni 1M ..

Perché è questo? Ed è comunque possibile ottenere questo tipo di prestazioni senza usare eclipse?

Modifica: aggiunti risultati VisualVM Java

www.craftboom.co.uk/jvm.png - L'utilizzo della CPU è più alto quando si esegue in eclissi. Sia la CPU che l'utilizzo della memoria sembrano cadere a 0 occasionalmente nella shell o_O

EDIT2: Risulta che si tratta di un problema di stampa sullo schermo. Non l'ho menzionato nel mio post originale, ma il programma stampa ogni permutazione sulla console .. Commentato e salvato su un file invece .. ora funziona altrettanto velocemente sia in shell che in eclissi. : -)

Grazie a tutti per le risposte.

    
posta Lambert 09.03.2012 - 00:14
fonte

2 risposte

9

I tempi di esecuzione più lunghi indicano un problema di memoria. O scambiate su disco o avete molte più raccolte di dati inutili rispetto a Eclipse (perché avete un heap più piccolo).

Esegui usando un profiler e vedi dove viene speso il tempo. Per Java, iniziare con jvisualvm nel JDK.

    
risposta data 09.03.2012 - 04:59
fonte
7

Controlla le impostazioni in eclipse.ini nella tua installazione (conterrà le impostazioni JVM). È possibile che stiano configurando la JVM per utilizzarla in modo più efficiente rispetto a quando esegui il programma.

link

link

    
risposta data 09.03.2012 - 04:49
fonte

Leggi altre domande sui tag