[解決済み] System.currentTimeMillisとSystem.nanoTimeの比較
質問
正確さ 対 精密さ
を使うべきかどうかを知りたいのです。 System.currentTimeMillis() または System.nanoTime() というのは、ゲーム中のオブジェクトの位置を更新するときでしょうか? オブジェクトの動きの変化は、最後の呼び出しからの経過時間に正比例し、私はできるだけ正確にしたいです。
私は、異なるオペレーティングシステム間で深刻な時間分解能の問題があることを読みました(つまり、Mac / Linuxはほぼ1msの分解能であるのに対して、Windowsは50msの分解能?) 私は主にWindowsでアプリを動かしていますが、50msの解像度はかなり不正確なようです。
私が挙げた2つ以外に良い選択肢はあるのでしょうか?
ご意見・ご感想があればお聞かせください。
解決方法は?
を極めて正確に測定したいだけならともかく、そうでないなら
経過時間
を使用します。
System.nanoTime()
.
System.currentTimeMillis()
は、エポックからの経過時間をミリ秒単位でできるだけ正確に表示しますが
System.nanoTime()
は、任意の点からの相対的なナノ秒の精度の時刻を表示します。
Javaドキュメントより。
<ブロッククオートpublic static long nanoTime()
最も正確なシステムタイマーの現在値をナノ秒単位で返します。
このメソッドは 経過時間を測定するものではありません。 システムに関する他のいかなる概念にも関係しない または壁掛け時計の時間です。返される値は からのナノ秒を表します。 固定された、しかし任意の 原点 時間(おそらく を設定することができます。 負の数)。この方式では ナノ秒の精度を持つが 必ずしもナノ秒の精度である必要はありません。また を保証するものではありません。 値が変化する頻度 差分 を超える連続した呼び出しの 約292年以上(2 63 ナノ秒)は、正確ではありません。 は、数値計算のために経過時間を計算します。 をオーバーフローさせます。
例えば、あるコードの実行にかかる時間を測定するため。
long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
こちらもご覧ください。 JavaDoc System.nanoTime() そして JavaDoc System.currentTimeMillis() をご覧ください。
関連
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
IllegalArgumentException この例外を解決する方法
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。
-
[解決済み】System.currentTimeMillis() vs. new Date() vs. Calendar.getInstance().getTime()について)
-
[解決済み] System.nanoTime()は全く使えないのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
ファインバグタイプ
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
linux run jarfile Invalid or corrupt jarfile error.
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
org.glassfish.jersey.servlet.ServletContainer
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
[解決済み] System.nanoTime()は全く使えないのか?