Brak jednoznacznej odpowiedzi, ale tylko sposób na zdiagnozowanie na miejscu, co się dzieje dokładnie.
Trzeba być potwierdzić których proces zużywa CPU i co to jest dokładnie to robi, na przykład poprzez monitorowanie połączeń systemowych zrobić: the Sysinternals narzędzi takich jak Process Explorer i Process Monitor powinno prowadzić do wskazówek na temat tego, co może być nie tak. Przynajmniej możesz porównać profil wykonania z trybem zgodności bez XP.
Ponieważ problem może wynikać z samej aplikacji Java, należy wypróbować profilowanie maszyny JVM przy użyciu narzędzi takich jak Netbeans Profiler. Być może kod opiera się na starych, specyficznych dla systemu Windows XP materiałach, takich jak struktura katalogów lub zmienna środowiskowa, które już nie istnieją lub uległy zmianie w systemie Windows 7 (ale zostały zachowane/zastosowane ponownie na własnej instalacji) ... prowadząc do niewłaściwej obsługi błędów i nieskończonej pętli powtórzeń na przykład.
Natywny program do profilowania okien może być również opcją, ale jest zbyt trudny do przeanalizowania bez kodu źródłowego JVM, a także w przypadku kodu Java z powodu JIT.
Nie mówię, że wiem dlaczego, ale czy sprawdziłeś, czy jest to 32-bitowa JVM czy 64-bitowa JVM? –
Bądź wdzięczny, że Twoi klienci znaleźli rozwiązanie, które działa dla nich. Czy twoja aplikacja Java jest 32-bitowa czy 64-bitowa? Czy komputery klienckie Windows 7 są 32-lub 64-bitowe? –
Tak, myślę, że Windows7 jest 64-bitowy, aplikacja może być 32-bitowa lub 64-bitowa, szczerze mówiąc, ponieważ nie mogę sam replikować problemu, staram się to śledzić, ale zastanawiałem się, czy ktokolwiek mógłby zrozumieć, dlaczego aplikacja może działać lepiej w Kompatybilności mode –