MITのバトルコードコンペティションに参加します。参加者は、互いに戦うロボットを制御するプログラムを作成します。問題は、ロボットが一定量のバイトコードを 1 ターンに実行することに制限されていることです (昨年は 1 ターンあたり 10000 でした)。さて、次のような単純なループ
(int i=0; i<100; i++){
// do nothing
}
彼らのソフトウェアによると、約 400 バイトコード (おそらく (i をインクリメントするための 2 バイトコード + i<100 かどうかをチェックするための 2 バイトコード) * 100 = 400 バイトコードのようなもの) を使用するため、非常に厳密なコードを作成する必要があります。したがって、いくつかの異なるナビゲーション アルゴリズムを試すとき、自分のコードが使用しているバイトコードの量を把握できることが重要です。どうすればこれを行うことができるでしょうか?
(それは可能です-彼らはそれを行いますが、私には方法がわかりません!また、彼らはJITが何らかの形で機能するのを止めなければなりません.各ロボットは別々のスレッドで実行されることを知っているので、答えは確実です.私が知らないある種のスレッドのトリックが含まれています。)