特定のマシン上で Java アプリケーションの実行速度が遅くなる理由として考えられるものは何ですか?

特定のマシン上で Java アプリケーションの実行速度が遅くなる理由として考えられるものは何ですか?

同じ OS (Windows 7) と同じ Java バージョンを実行しているより強力なマシンでは、Java アプリケーションの実行速度が遅くなるようです。実行速度が遅いというのは、たとえばタブを切り替えたり、ボタンを押したりするときに、応答時間が常に遅れることを意味します。

なぜそうなるのでしょうか?

答え1

これは、Java アプリケーション アーキテクチャに問題がある可能性があります。不要なスレッドとインスタンスのロード、および多くの不適切なロジック (条件チェックとループ) が原因である可能性があります。さらに、JVM に十分なメモリが割り当てられているかどうかを確認してください。そうでない場合は、非推奨の API を使用している可能性があります。

これは役に立つかもしれません

Elasticsearch テストが非常に遅い場合、非推奨の API を使用します · 問題 · GitHub

答え2

システムは正常に動作しているものの、ボタンのクリック、タブの切り替えなどのイベントの処理中に呼び出されるサービスまたはサービス セットに時間がかかっている場合があります。
私たちも同じようなシナリオに直面しました。最初は、複数のスレッドが同時に起動したり、ログが多すぎるためにアプリケーションの実行が遅くなっているように見えました。しかし、さらに分析を進めると、プロセス エンジン タスクが同期的に電子メールを送信しているときに時間がかかり、場合によっては電子メールの送信に失敗することがわかりました。たまたま、他のチームでもメールの送信が遅いことが観察されていました。これは、SMTP サーバー側の問題が原因で発生していました。SMTP サーバー側の問題が解決されたため、速度低下はなくなりました。
電子メールの送信プロセスを非同期にすることで、さらに最適化しました。

関連情報