2012-08-24 26 views
10

La aplicación Java se ejecuta más rápido en Windows 7 en el modo de compatibilidad de Windows XP según algunos de mis clientes, pero ¿por qué?Aplicación Java envuelta funciona más rápido en Windows 7 en Windows XP Modo de compatibilidad

Parece que no tengo el problema yo mismo, pero encuentran que la aplicación parece consumir 100% de CPU sin hacer nada, simplemente configurando las propiedades del exe o un archivo de proceso por lotes que llama al Java con el modo de compatibilidad de Windows XP lo arregla, ¿cómo podría ser eso?

+0

No digo que sepa por qué, pero ¿verificaron si era una JVM de 32 bits o una JVM de 64 bits? –

+1

Agradezca a sus clientes que hayan encontrado una solución que funcione para ellos. ¿Tu aplicación Java es de 32 o 64 bits? ¿Son las máquinas Windows 7 de sus clientes de 32 bits o 64 bits? –

+0

Sí, creo que Windows7 es de 64 bits, la aplicación puede ser de 32 o 64 bits, para ser sincero, ya que no puedo replicar el problema yo mismo estoy luchando para rastrear esto, pero me preguntaba si alguien podría entender por qué una aplicación podría funcionar mejor en compatibilidad modo –

Respuesta

-1

Es debido a la conmutación de tareas internamente. El cambio de tareas en Windows Xp en modo compatibilidad es más comparado con Windows 7. También puede causarlo debido al firewall. Verifique el estado de su firewall en Windows 7.

+2

¿Qué quisiste decir? ¿Cambiar qué tareas, internamente a qué? "cambiar ... es más en comparación con Windows 7". ¿Mas que? ¿Puedes darme alguna fuente? – ymajoros

+0

Creo que está sugiriendo que el cambio de tarea interno en el modo XP tenga más rendimiento que el original. – Miere

4

Sin respuesta definitiva, pero solo una forma de diagnosticar in situ lo que está sucediendo exactamente.

tienes que estar confirmar qué proceso está consumiendo CPU y lo que está haciendo exactamente, por ejemplo mediante el control de las llamadas al sistema hecho: los sysinternals herramientas como Process Explorer y Process Monitor debe llevar a pistas sobre lo que puede estar mal. Al menos, puede comparar el perfil de ejecución con versus sin el modo de compatibilidad de XP.

Como el problema puede provenir de la aplicación Java en sí, debe intentar una creación de perfiles JVM con herramientas como Netbeans Profiler. Tal vez el código se basa en algunos elementos específicos de Windows XP, como la estructura de directorios o la variable de entorno que ya no existen o que no han cambiado en Windows 7 (pero que mantuviste/vuelves a aplicar en tu propia instalación) ... lo que conduce a un error de bucle infinito de reintentos, por ejemplo.

Un generador de perfiles de Windows nativo también puede ser una opción, pero es demasiado difícil de analizar sin el código fuente JVM, y cuando se trata de código Java debido a JIT.

0

No hay solución directa, pero su pregunta es bastante abierta.

Si su cliente puede reproducir esto consistentemente, puede ver si están dispuestos a enviarle un remote assistance request, que le permite acceder a su escritorio. Entonces, al menos, puede ver el problema en acción y tratar de depurarlo en su máquina utilizando las herramientas mencionadas por otros.

Cuestiones relacionadas