クロスプラットフォームのミリ秒のタイマー以上49のでしょうか?
-
24-09-2019 - |
質問
私は開発途上の小さな専用サーバーのC/C++を必要とし稼動率のです。っても時間として機能し、ミリ秒のタイミングが必要です。私は2つの問題をしているところが直面し
を使用する32ビット整数の店舗を数ミリ秒以降、動作開始回りについて、49日間のマークリセットをゼロになります。考えないでもありませんでした使用または64ビット整数型、gettimeofday取得するマイクロ秒単位でユーザー評価この一部です。
あるという標準システム呼び出しからの経過ミリ秒単位のことはプラットフォーム独立
どうしたらよい解決するこれらの問題ということか。
解決
使用64ビット整数、甘えることに十分な時間
お正;ありません。一つの可能性がを使用することで ブDateTime 図書館を交互に表示またはロールします。
幸運を祈っています。
他のヒント
といといわれているのは、最初に問題をお抱える信頼性のミリ秒の精度ます。
今私はビットを段階的に問うものです。
内容を理解することができ、正確なタイミング(ミリ秒レベルでも、マイクロ秒)がタイミング、50daysで、ミリ秒レベルのようだが...不思議に思います。
きもの見直しの必要が希少であることが必要以上6または7桁...るんを取得しようとしているのかをワンサイズった人にとっては、すべての期間のオブジェクトです。
それでいいのかもしれまでの分類お時間:
- 数分でもご使用のミリ秒の精度
- その他>利用秒精度でのカウントが1日1970)
で...うに感を1/10秒の2ヶ月?
明白な。ミリ秒数を取得するには、プラットフォーム固有のコードで64ビット整数を使用します。 OSXを含むUnixでは、あなたはgettimeofday
をしたいです。 Windowsでは、信頼性の高いミリ秒粒度のタイムソースを取得幸運。へのTclライブラリでコードいくつかの邪悪な落とし穴がエリア内にありますように、こののは本当に複雑で行います。
1への答え:あなたが測定していることを「ミリ秒のタイミングは」約20日の下にある場合は、符号なしの値として時間を減算し、符号付きの値として結果を確認することができます。これは、ラップタイマー(0xffffffffのから0x00000000のにラッピング)で正しい結果を与える必要があります。あなたのタイミングが20日以上ある場合は、より多くのビットを必要とします。