System.nanoTime() は最新のマルチコア システム上で本当に信頼できますか?

Susan Sarandon
リリース: 2024-11-17 19:06:02
オリジナル
937 人が閲覧しました

Is System.nanoTime() Truly Reliable on Modern Multi-Core Systems?

マルチコア システムでは System.nanoTime() にまだ欠陥がありますか?

ブログ投稿「System.nanoTime() に注意してください」 Java" は、x86 アーキテクチャでの System.nanoTime() の信頼性について懸念を提起しました。この場合、System.nanoTime() が使用する CPU 固有のカウンターは、非同期カウンターを使用した異なるプロセッサ間でのスレッド スケジューリングにより、負の時間測定につながる可能性があります。

しかし、 Sun のエンジニア (現 Oracle) からの 2011 年の回答では、この問題は Windows XP Service Pack 2 で解決され、最新の Windows および Linux システムでは問題ではなくなっていることが明らかにされました。

Windows:

  • System.nanoTime() によって使用される QueryPerformanceCounter のデフォルトの実装は、SMP システム上のプロセッサ間で同期される電源管理タイマー (PMTimer) を使用するように変更されました。

Linux:

  • カーネル バージョン 2.6.18 以降、非同期タイム ソースを検出するシステム ロジックが改善されました。
  • 信頼性の低いタイム ソース通常は検出され、より信頼性の高いクロック ソースへのフォールバックが採用されます。

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

提供された応答は SPARC または Solaris システムに対応していません。ただし、これらのプラットフォームにも、複数のプロセッサ間で一貫した時刻管理を保証するための同様のメカニズムが実装されていると考えるのが合理的です。

この情報は 2011 年の時点で正確であることに注意することが重要です。 System.nanoTime() の実装と動作については、最新のドキュメントとコミュニティのディスカッションを参照してください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート