2012-08-24 10 views
10

Java-Anwendung läuft schneller auf Windows 7 in Windows XP Kompatibilitätsmodus nach einigen meiner Kunden, aber warum?Java-Anwendung Wrapped läuft schneller auf Windows 7 in Windows XP Kompatibilitätsmodus

Ich habe nicht das Problem selbst, aber sie finden die Anwendung scheint zu verbrauchen 100% CPU, während nichts tun, einfach die Eigenschaften der exe oder eine Batch-Datei, die das Java auf Windows XP Kompatibilitätsmodus aufruft behebt es, wie könnte das sein?

+0

Ich sage nicht, dass ich weiß warum, aber haben Sie überprüft, ob es eine 32-Bit-JVM oder eine 64-Bit-JVM war? –

+1

Seien Sie dankbar, dass Ihre Kunden eine Lösung gefunden haben, die für sie funktioniert. Ist Ihre Java-Anwendung 32 Bit oder 64 Bit? Sind die Windows 7-Maschinen Ihrer Kunden 32 Bit oder 64 Bit? –

+0

Ja, ich denke das Windows7 ist 64bit, die Anwendung kann 32bit oder 64bit sein, um ehrlich zu sein, da ich das Problem selbst nicht replizieren kann. Ich habe Mühe, dies nachzuverfolgen, aber ich habe mich gefragt, ob irgendjemand verstehen könnte, warum eine Anwendung in Compatability besser läuft mode –

Antwort

-1

Es ist wegen der Umschaltung von Aufgaben intern. Das Umschalten von Aufgaben in Windows XP im Kompatibilitätsmodus ist mehr mit Windows 7 zu vergleichen. Es kann auch wegen der Firewall dazu kommen. Überprüfen Sie Ihren Firewall-Status in Windows 7.

+2

Was meinst du? Welche Aufgaben, intern zu was? "Switching ... ist mehr im Vergleich zu Windows 7". Mehr was? Kannst du eine Quelle angeben? – ymajoros

+0

Ich denke, er schlägt vor, dass interne Taskwechsel im XP-Modus mehr Leistung als Original 7 haben. – Miere

4

Keine definitive Antwort, sondern nur eine Möglichkeit, vor Ort zu diagnostizieren, was genau passiert.

Man muss bestätigen, welcher Prozess CPU verbraucht und was es tut genau, beispielsweise durch Systemaufrufe Überwachung getan: Die sysinternals Tools wie Process Explorer und Process Monitor sollten Hinweise darauf führen, was falsch sein kann. Zumindest können Sie das Ausführungsprofil mit dem Modus ohne XP-Kompatibilität vergleichen.

Da das Problem von der Java-Anwendung selbst kommen kann, sollten Sie eine JVM-Profilerstellung mit Tools wie Netbeans Profiler versuchen. Vielleicht beruht der Code auf einigen alten Windows XP-spezifischen Dingen wie der Verzeichnisstruktur oder Umgebungsvariablen, die nicht mehr existieren oder in Windows 7 geändert wurden (aber Sie haben sie bei Ihrer eigenen Installation beibehalten/erneut angewendet) ... was zu einer fehlerhaften Fehlerbehandlung und Endlosschleife führt von Wiederholungen zum Beispiel.

Ein nativer Windows-Profiler kann auch eine Option sein, aber es ist viel zu schwierig, ohne JVM-Quellcode zu analysieren, und wenn Java-Code wegen JIT betroffen ist.

0

Keine direkte Lösung, aber Ihre Frage ist ziemlich offen.

Wenn Ihr Kunde dies konsistent reproduzieren kann, sehen Sie möglicherweise, ob Sie bereit sind, Ihnen eine remote assistance request zu senden, die Sie auf ihren Desktop bringt. Dann können Sie das Problem zumindest in Aktion sehen und versuchen, es auf ihrem Rechner mit den von anderen erwähnten Tools zu debuggen.

Verwandte Themen