ホームページ >Java >&#&チュートリアル >System.currentTimeMillis() と System.nanoTime(): ゲーム オブジェクトの正確な位置決めにはどちらが最適ですか?
ゲーム内でオブジェクトの位置の更新を処理する場合、System.currentTimeMillis を使用するかの選択() と System.nanoTime() が重要になります。どちらの方法も時間測定を提供しますが、精度と精度は異なります。
精度 は測定可能な時間の最小単位を指し、精度 は、測定値が実際の時間にどれだけ近いかを指します。 System.currentTimeMillis() はミリ秒を返しますが、System.nanoTime() はナノ秒を返します。これは、System.nanoTime() の方が正確であることを示しています。
質問で述べたように、異なるオペレーティング システムの時間解像度はさまざまです。 Windows の解像度は 50 ミリ秒であると報告されていますが、Mac/Linux の解像度は約 1 ミリ秒です。これは、System.currentTimeMillis() を使用した Windows での測定には、最大 50 ミリ秒の不正確さがある可能性があることを意味します。
主な目標は、可能な限り最も正確な測定を達成することであるため、オブジェクトの位置決めには、System.nanoTime() を使用することをお勧めします。ナノ秒の精度が提供され、ゲーム内でより正確な時間測定とスムーズなオブジェクトの移動が可能になります。
デモンストレーションのために、次のコードは System.nanoTime( ):
long startTime = System.nanoTime(); // ... code to be measured ... long estimatedTime = System.nanoTime() - startTime;
現在時刻からstartTimeを引くことで経過時間をナノ秒で取得します
以上がSystem.currentTimeMillis() と System.nanoTime(): ゲーム オブジェクトの正確な位置決めにはどちらが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。