質問

この質問が StackOverflow に属するかどうかはわかりませんが、ここにあります。

あるパーティから別のパーティに転送されるデータに対して C# を使用してタイムスタンプを生成する必要があります。また、すべてのオペレーティング システム (Windows、Linux、Unix) におけるシステム クロックの最悪の場合の精度はどのくらいかを知る必要があります。私が必要とするのは、すべてのオペレーティング システムがこのタイムスタンプを検証できるような精度を把握することです。

一例として、Windows Vista オペレーティング システムのクロックの分解能は約 10 ~ 15 ミリ秒です。

役に立ちましたか?

解決

面白い。主要なオペレーティング システムの分解能は最悪でもセンチ秒 (0.01 秒) ですが、多くの場合、それよりも高い精度で組み込まれています。

Linux では、タイムスタンプで最大マイクロ秒の解像度が提供されます (「 man utime) コンピュータのクロック ハードウェアによって異なります。Windows NT/Win2K/XPなどファイル タイムスタンプのミリ秒精度を提供します (NTFS のみを使用)。ただし、ファイル タイムスタンプはすべてのシステム タイムスタンプを考慮します。 0.000 000 1 秒単位 (1 秒あたり 1,000 万)。

正確であれば そして システム間では正確な時間分解能が必要であるため、GPS 受信機は 100 ナノ秒の精度を簡単に達成できます。 仕組みの副作用, 、多くの安価なモデルは 10 ns と同等です。 特別なGPSモデル 派生した時間を外部で使用できるようにします。

他のヒント

のようなものを生成したいと考えていますか? UNIX タイムスタンプ データのためですか?それとも、既存のファイルと衝突しないタイムスタンプを見つけるためですか?後であれば、いつでもティックを使用できます。

「長い」タイムスタンプの問題は、タイムスタンプがそれを生成するマシンに相対的であるものの、クロックが異なるように設定される可能性があるため (浮動小数点数ではなく、実際には異なるように設定されるため)、他のシステムで衝突しないことが保証されないことです。

データが安全/機密であり、キーを同期するための時間ベースのメカニズム (ALA) を検討している場合 ケルベロス) 特にシステムの同期や同期の維持には克服すべき障害がたくさんあるため、独自に開発することはお勧めしません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top