0

install4j を使用して Java アプリケーションのインストーラーを作成しました。JDK1.6 で実行され、Jetty を Web サーバーとして使用し、struts2 を MVC として使用します。アプリケーションは正常にインストールされ、exe ファイルが正しく作成されます。exeファイルをダブルクリックしてアプリケーションを起動すると、アプリケーションが起動して正常に起動し、すべての機能が正しく動作します。アプリケーションを起動してから約 30 ~ 40 秒後、exe プロセスがほぼすべての CPU パワー (最大 99%) を消費していることに気付きました。私のPCで他のアプリケーションを使用するのが非常に難しくなります。これは、Windows XP および Vista でのみ発生します。しかし、Windows 7 で試してみると、この問題は発生しません。Windows XP および Vista マシンの仕様は非常に優れています (4 GB の RAM を備えた 3GHZ プロセッサ)。

アプリケーションを起動してから 30 ~ 40 秒後に exe がすべての CPU を使い果たす理由がまったくわかりません。スレッドも、バックグラウンド ワーカーも、処理されるロジックもまったくありません。非常に単純な MVC アプリケーションです。実際のところ、アプリケーションを開こうとしてから (使用せずに) 30 秒から 40 秒待つと、CPU 使用率が高くなります。

タスク マネージャーで、2 つのプロセッサが作成されていることに気付きました。1 つは exe 用で、もう 1 つはアプリの起動中に exe によって作成された Java プロセッサ用です。Java プロセスがアイドル状態のときに、exe プロセスだけが CPU の 99% を使用しています。

似たような顔をした人はいますか?どんな助けでも大歓迎です。ありがとう、

4

1 に答える 1

0

VisualVMを使用してJavaプロセスを調べてみましたか?これは、JDKインストールの一部です。実行中のJavaプログラムにフックして、非常に徹底的にサンプリング/プロファイリングできます。

VisualVM

于 2011-09-21T22:42:26.473 に答える