うまくいけば、これは簡単で迅速な質問です。私は最近、Netbeans で CPU 集中型の Java アプリケーションを開発しました。A* パスファインディングを毎秒数万回使用して、タイル マッチング ゲームを解決します。アプリケーションが完成し、非常に高速に実行されます (私はずっと netbeans でテストしてきました)。私は 1 秒あたり 700 回の試行を記録しました (各試行はおそらく 20 回程度のパス検索です)。プロジェクトをビルドすると、jar が作成され、これを netbeans の外部で実行できます。コマンド ライン (Windows 7) を使用し、java -jar theFile.jar を使用すると、1 秒あたり 1000 回試行されます。IDE はおそらく CPU パワーを少し使用して抑制していたので、これは理解できます (私のアプリケーションはマルチコアです。数値を設定できます。通常は 3/4 を使用するため、システムがあまり遅くなりません)。さて、紛らわしい部分です。明らかに私はしません Windows でこのアプリケーションを実行するたびに、ユーザーがコマンド ラインを使用する必要があることを望んでいません。jar をクリックするだけでよいはずです。問題は、jar ファイルをダブルクリックすると、プログラムが 1 秒間に 300 回も実行されるということです。
いったいなぜ、まったく同じプログラムを実行するこれら 3 つの方法が、他のすべてが一定であるにもかかわらず、パフォーマンスにこれほど大きな影響を与えるのでしょうか? コマンドラインで .jar を実行するためのスクリプトを作成するという私の修正ですか、それともここで何が起こっているのか分かりますか? どうもありがとう!
編集:新しい情報
コマンドでバッチファイルを作成しました: java -jar theFile.jar これを実行すると、コンソールで実行した場合と同じ速度で実行されます (つまり、1000 att/秒)。
ただし、単純な c++ プログラムで実行可能ファイルも作成しました。プログラムはほんの数行で、System("java -jar theFile.jar"); でした。そして0を返します;。信じられないことに、これは jar ファイルをダブルクリックする速度、約 300att/秒で実行されます。なんて奇妙だ!異なる IDE パラメータである可能性は十分にありますが、デフォルトのシステム パラメータを確認する方法や、この特定の jar 用に変更する方法がわかりません。