2012-08-24 4 views
10

L'applicazione Java viene eseguita più rapidamente su Windows 7 in modalità compatibile con Windows XP in base ad alcuni dei miei clienti, ma perché?Applicazione Java completata più veloce su Windows 7 in modalità compatibilità con Windows XP

Non sembra di avere il problema da solo, ma trovano che l'applicazione sembra consumare CPU al 100% senza fare nulla, semplicemente impostando le proprietà dell'exe o di un file batch che chiama java alla modalità di compatibilità di Windows XP lo aggiusta, come potrebbe essere?

+0

Non sto dicendo che so perché, ma hai controllato se fosse una JVM a 32 bit o una JVM a 64 bit? –

+1

Sii grato ai tuoi clienti che hanno trovato una soluzione che funzioni per loro. La tua applicazione Java è a 32 o 64 bit? Le macchine Windows 7 dei tuoi clienti sono a 32 o 64 bit? –

+0

Sì, penso che Windows7 sia a 64 bit, l'applicazione può essere a 32 bit o 64 bit, per essere sinceri, perché non riesco a replicare il problema. Sto faticando a rintracciarlo, ma mi chiedevo se qualcuno potesse capire perché un'applicazione potrebbe funzionare meglio in Compatibilità mode –

risposta

-1

È dovuto al passaggio delle attività internamente. Il passaggio delle attività in Windows Xp in modalità di compatibilità è più paragonato a Windows 7. Può anche causare il firewall. Controlla lo stato del tuo firewall su Windows 7.

+2

Cosa intendevi? Cambiando quali compiti, internamente a cosa? "cambiare ... è più paragonato a windows 7". Più cosa? Puoi dare qualche fonte? – ymajoros

+0

Penso che stia suggerendo che il passaggio delle attività interne in modalità XP abbia più prestazioni rispetto a quello originale 7. – Miere

4

Nessuna risposta definitiva ma solo un modo per diagnosticare sul sito cosa sta accadendo esattamente.

Devi essere confermare quale processo sta consumando CPU e quello che sta facendo esattamente, per esempio attraverso il monitoraggio delle chiamate di sistema fatte: i Sysinternals strumenti come Process Explorer e Process Monitor dovrebbe portare a indizi su ciò che può essere sbagliato. Almeno, è possibile confrontare il profilo di esecuzione con contro senza la modalità di compatibilità XP.

Poiché il problema può venire dall'applicazione Java stessa, è necessario eseguire una prova della creazione profili JVM con strumenti come Netbeans Profiler. Forse il codice si basa su alcune vecchie cose specifiche di Windows XP come la struttura delle directory o la variabile d'ambiente che non esistono più o sono cambiate in Windows 7 (ma che hai tenuto/riapplicato sulla tua installazione) ... portando a una gestione degli errori e loop infiniti di tentativi, ad esempio.

Un profiler nativo di Windows può essere un'opzione, ma è troppo difficile da analizzare senza codice sorgente JVM e quando il codice Java è interessato a causa di JIT.

0

Nessuna soluzione diretta, ma la tua domanda è piuttosto aperta.

Se il cliente è in grado di riprodurlo in modo coerente, è possibile vedere se è disposto a inviarti uno remote assistance request, lasciandolo sul proprio desktop. Quindi almeno puoi vedere il problema in azione e provare a eseguirne il debug sul loro computer utilizzando gli strumenti citati da altri.