2012-08-24 15 views
10

Javaアプリケーションは、Windows XP互換モードでWindows 7で高速に実行されますが、その理由は何ですか?Windows XPでWindows 7でJavaアプリケーションのラップが高速に実行される互換モード

私はこの問題を自分で解決していないようですが、何もしないうちにアプリケーションを100%消費しているようですが、exeファイルやJavaをWindows XP互換モードにするバッチファイルのプロパティを設定するだけですそれを修正する、それはどのようにすることができますか?

+0

私は理由を知っていると言っているわけではありませんが、32ビットJVMか64ビットJVMかをチェックしましたか? –

+1

あなたの顧客が彼らのために働く解決策を見つけたことに感謝します。あなたのJavaアプリケーションは32ビットか64ビットですか?お客様のWindows 7マシンは32ビットか64ビットですか? –

+0

ええ、私はWindows7は64ビットだと思うが、アプリケーションは32ビットまたは64ビットで、私は問題を自分自身で再現することはできないので、率直であると思うImはこれを追跡しようと苦労しているが、なぜアプリケーションがCompatibilityモード –

答えて

-1

内部的にタスクを切り替えるためです。互換モードでのWindows XPのタスクの切り替えは、Windows 7と比較しています。これは、ファイアウォールのためにも発生する可能性があります。 Windows 7でファイアウォールの状態を確認してください。

+2

どういう意味ですか?どのようなタスクを内部的にどのように切り替えるか? "切り替える...は、Windows 7と比較されています"。もっと何?何か情報源を与えることができますか? – ymajoros

+0

彼は、XPモードでの内部タスクの切り替えには、元の7ビットよりもパフォーマンスが高いことを提案していると思います。 – Miere

4

明確な答えはありませんが、正確に何が起こっているのかを現場で診断する方法です。 SysinternalsのにProcess ExplorerProcess Monitorなどのツールを間違っているかもしれないものについての手がかりにつながるはず:あなたが持っている

が行われ、システムコールを監視することにより、例えば、CPUを消費しているプロセスと、それは正確に何をしているかを確認することができます。少なくとも、実行プロファイルとXP互換モードを比較することができます。

Javaアプリケーション自体から問題が発生する可能性があるため、Netbeans Profilerなどのツールを使用してJVMプロファイリングを試してください。多分、コードはディレクトリ構造や環境変数のような古いWindows XP固有のものに頼っているかもしれませんが、Windows 7では変更されていません(しかし、あなた自身のインストールでは/再適用されました)...不適切なエラー処理と無限ループ例えば再試行回数。

ネイティブWindowsプロファイラもオプションですが、JVMソースコードなしで分析するのは非常に難しく、JITのためにJavaコードが関係している場合は非常に困難です。

0

直接的な解決策はありませんが、あなたの質問はかなり終わりです。

お客様がこれを一貫して再現できる場合は、remote assistance requestをお送りしてデスクトップにお送りすることができます。それから、少なくとも実際に問題が発生しているのを見て、他の人が触れたツールを使ってマシン上でデバッグしようとします。

関連する問題