検索
ホームページJava&#&チュートリアルSystem.nanoTime() は最新のマルチコア システムにまだ関連していますか?

Is System.nanoTime() Still Relevant in Modern Multi-Core Systems?

System.nanoTime(): 本当に役に立たないのでしょうか?

System.nanoTime() に関して提起された懸念は、次のような認識から生じています。マルチコア システムでは、CPU 固有のタイム カウンタの変動により、時間測定により予期しない結果が生じる可能性があります。より低いカウンタを持つ別のプロセッサにスケジュールされたスレッドは、消費時間を計算する際に負の時間差が生じる可能性があると理論づけられています。

カウンタの不一致への対処

ただし、前提に反して、System.nanoTime() はプロセッサ間の一貫性を保証します。最新のオペレーティング システムとハードウェア抽象化 (HAL など) は、元の投稿で提起された問題に対処しています。

Windows:

Windows システムでは、Sun の新しいバージョンJDK (2011 より前) は、TSC ではなく Windows の QueryPerformanceCounter を使用します。 QueryPerformanceCounter はプロセッサ間での同期時間を保証し、カウンタの不一致の懸念を排除します。

Linux:

Linux カーネル 2.6.18 以降では、非同期のタイムベースを検出してフォールバックすることでこの問題に対処しています。信頼性の高いクロックソース。この安全策により、複数のプロセッサ間で一貫した時刻の維持が保証されます。

その他のプラットフォーム:

他のプラットフォーム (SPARC など) での System.nanoTime() の動作に関する情報は限られています。 、Solaris、IBM JVM)。ただし、最新のオペレーティング システムと JVM は時間の一貫性を維持するために同様の保護を実装していると考えるのが合理的です。

結論:

最初に提起された懸念は次のとおりであった可能性があります。特定の歴史的文脈では有効ですが、System.nanoTime() は廃止されません。最新のオペレーティング システムと JVM には、複数のプロセッサ間で信頼性の高い時間測定を保証するための保護手段が実装されています。したがって、System.nanoTime() は、Java アプリケーションで経過時間を測定するための貴重なツールであり続けます。

以上がSystem.nanoTime() は最新のマルチコア システムにまだ関連していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。