2012-08-24 8 views
10

Aplikacja Java działa szybciej w systemie Windows 7 w trybie zgodności z Windows XP, zgodnie z niektórymi z moich klientów, ale dlaczego?Pakowanie aplikacji Java działa szybciej w systemie Windows 7 w trybie zgodności z Windows XP

Nie wydaje mi się, żebym miał ten problem sam, ale okazało się, że aplikacja zużywa 100% procesora, nie robiąc nic, po prostu ustawiając właściwości pliku exe lub pliku wsadowego, który wywołuje tryb zgodności z Windows XP. naprawia to, jak to możliwe?

+0

Nie mówię, że wiem dlaczego, ale czy sprawdziłeś, czy jest to 32-bitowa JVM czy 64-bitowa JVM? –

+1

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? –

+0

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 –

Odpowiedz

-1

Jest to spowodowane przełączaniem zadań wewnętrznie. Przełączanie zadań w systemie Windows XP w trybie zgodności jest bardziej porównane do systemu Windows 7. Może to spowodować również z powodu zapory. Sprawdź stan zapory w Windows 7.

+2

Co masz na myśli? Przełączanie jakie zadania, wewnętrznie do czego? "przełączanie ... jest bardziej porównywalne do systemu Windows 7". Więcej co? Czy możesz podać jakieś źródło? – ymajoros

+0

Myślę, że sugeruje, że wewnętrzne przełączanie zadań w trybie XP ma większą wydajność niż oryginalna 7. – Miere

4

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.

0

Brak bezpośredniego rozwiązania, ale twoje pytanie jest dość otwarte.

Jeśli klient może odtworzyć to konsekwentnie, możesz zobaczyć, czy są gotowi wysłać Ci numer remote assistance request, umożliwiając Ci na swoim pulpicie. Potem przynajmniej możesz zobaczyć problem w działaniu i spróbuj debugować go na swoim komputerze za pomocą narzędzi wymienionych przez innych.