2012-08-24 74 views
10

根據我的某些客戶的說法,Windows應用程序在Windows XP兼容模式下運行Java應用程序的速度更快,但爲什麼?在Windows XP兼容模式下,Java應用程序在Windows 7上運行速度更快

我似乎沒有自己的問題,但他們發現應用程序似乎正在消耗100%cpu而無所事事,只需設置exe或調用java的批處理文件的屬性爲Windows XP兼容模式修復它,這怎麼可能?

+0

我不是說我知道爲什麼,但是你檢查過它是否是32位JVM或64位JVM? –

+1

感謝您的客戶找到了適合他們的解決方案。你的Java應用程序是32位還是64位?您客戶的Windows 7機器是32位還是64位? –

+0

是的,我認爲Windows7是64位,應用程序可以是32位或64位,坦率地說,我無法自己複製這個問題。我努力追蹤這個問題,但想知道是否有人可以理解爲什麼應用程序可以在兼容性上更好地運行模式 –

回答

-1

這是因爲內部任務的切換。在兼容模式下切換Windows XP中的任務與Windows 7相比更多。它也可能是由於防火牆引起的。在Windows 7中檢查您的防火牆狀態。

+2

你是什麼意思?切換什麼任務,內部到什麼? 「切換......與Windows 7相比更多」。更多什麼?你能提供一些資料嗎? – ymajoros

+0

我認爲他建議在XP模式下進行內部任務切換的性能比原來的更高。 – Miere

4

沒有確定的答案,但只是一種方法來診斷現場究竟發生了什麼。

你必須要確認該過程通過監控進行系統調用消耗CPU和它做到底,比如:Sysinternals的工具,如Process ExplorerProcess Monitor應導致什麼可能是錯誤的線索。至少,您可以比較執行配置文件與沒有XP兼容模式。

由於問題可能來自Java應用程序本身,因此您應該嘗試使用Netbeans Profiler等工具對JVM進行分析。也許代碼依賴於一些舊的Windows XP特定的東西,如目錄結構或環境變量,不再存在或已在Windows 7中更改(但您在自己的安裝中保留/重新應用)...導致不正確的錯誤處理和無限循環例如重試。

本地windows分析器也可能是一個選項,但是如果沒有JVM源代碼,並且由於JIT而引起Java代碼的關注時,分析太困難了。

0

沒有直接的解決方案,但你的問題是相當開放式的。

如果您的客戶可以持續重現此情況,您可能會看到他們是否願意向您發送remote assistance request,讓您進入他們的桌面。那麼至少你可以看到問題的實際情況,並嘗試使用其他人提到的工具在他們的機器上進行調試。

相關問題