• 締切済み

WinAPIのGetLocalTimeの分解能は?

Windows API の GetLocalTimeの分解能について質問があります。 この関数は、連続して呼び出しを行うと、ミリ秒の部分が15ミリ秒程度の周期で更新されるという話をネット上で散見します。調査が甘いのか15ミリ秒の根拠が見つかりませんでした。WindowsXPでの検証結果であることが多いようにも感じています。 しかし、私のローカルPC上で同関数をC言語プログラムから実行する限りは、1ミリ秒以下の精度を持っているように思えます。 <ローカルPCのスペック> OS:windows8-pro CPU:core-i7 自分でも精度と分解能を勘違いしているのかと思っていたのですが、どうもそれも違うようです。 おおざっぱな質問ではありますが、GetLocalTimeの分解能は私の環境ではどうやって確認できるのでしょうか? ご教示頂けますと幸いです。

みんなの回答

回答No.2

GetLocalTime()は、直接時計ICやカウンタ等から時刻を取得しているわけではなく、メモリ上の時刻データを返すだけです。 そして、そのメモリ上の時刻データが更新されるのが、大体15mSec毎ということです。

  • ariseru
  • ベストアンサー率56% (930/1659)
回答No.1

http://d.hatena.ne.jp/kasei_san/20070727/p1 こちらのページによると、1ms単位の数値を返してはいるけど10ms程度の誤差が出るらしい。

hymdle
質問者

補足

私の記述が不足しておりました。 そのページも既に見ています。 分解能は以下の理解です。 ・ある間隔(分解能)で時刻を観測する。 ・分解能が15ミリなら、  2013/01/14 13:41:23.105 2013/01/14 13:41:23.255  というふうに一桁ミリ秒の意味は無くなります。 精度は表現出来る桁数のことで上記の場合、1ミリ秒になります。 改めて疑問を説明すると、上記の例が  2013/01/14 13:41:23.105 2013/01/14 13:41:23.105 2013/01/14 13:41:23.105 2013/01/14 13:41:23.106 というふうに、一桁ミリ以下の分解能で1桁ミリ秒の精度の日時を取得しているように見えるのです。

関連するQ&A

  • センサーの分解能について教えてください

    どうもはじめまして、技術初心者です。 センサーの分解能について教えて下さい。 フォト(光電)センサーには分解能の定義が存在し、なぜ近接センサーには分解能が存在しないのでしょうか? 分解能の定義が存在する流量計や圧力計などは、測定値を0~5Vもしくは4~20mAに変換し、演算値を画面に出力しているんですよね? 分解能とは精度、もしくは応答速度などの電気的にフィードバックが存在するものに定義づけられているものだと思っているのですが・・・ 色々調べても全く分かりません(´・ω・`) どなたか近接センサーは、なぜ分解能がないのか?教えて下さい。 宜しくお願い致しますm(__)m ※質問者は非常に頭が悪いので物に例えて教えて頂けると助かります。

  • センサの分解能と精度について質問させて下さい。

    センサの分解能と精度について質問させて下さい。 圧力センサについてなのですが、 分解能が0.01kPaだとすると、 このセンサを用いて微差圧を10Pa単位で正確に測定することができるのでしょうか? その際、ヒスや温度特性、繰り返し精度など含めて、フルスケールの1%の誤差が生じるとすると 200kPaの幅を測定できるセンサならば、その1%で2kPaの誤差が生じてしまいませんか? つまり、2KPaの誤差が生じるかもしれないのに0.01kPaまで測定できます、の意味がよくわかりません。

  • カメラの分解能計算式(アッベの原理)のについて

    カメラの分解能計算式(アッべの原理について) レンズ付きフィルムISO400における限界値を下記のようにご教授頂いたのですが、 >照明された物体の分解能を計算するアッベの式があり460nm(太陽光)でのアッベの限界式は次のようになる。 θ=174.8/D コントラストやレンズ収差などを加味しこの1.6~3.3倍の係数を掛ける。 http://www.hikari-magic.com/hikari/step1/07.html、 フジカラーPRO 400Hはコントラスト1000:1で125本/mmの解像力であり、 35ミリ・フィルムのサイズで計算すると、24×36mm=24×125×36×125=1350万画素 一方、レンズの分解能ですが、焦点距離32ミリのレンズの場合、35ミリ上での画角は68度×59度 http://www.cmehappy.jp/articles/angleofview.html アッベの式に1.6の係数を掛けると、分解能の限界は約90秒となります。これを画角に当てはめると、限界画素数は  68×60×60÷90×59×60×60÷90=642万画素 この収差コントラストを加味した1.6~3.3倍が何を根拠に算出された数値かが分かりません。 また仮に係数1.6とした場合、どの程度の収差やコントラストに対しての係数なのか(例えば現実の最高級レンズを使用しても発生してしまう程度のコントラストや収差のレベルなのか)が分かりません。回答者様にご回答頂くのが一番なのですが、数日待ったものの回答がないので質問させて頂きました。 お詳しい方、どうかご教授お願い致します。 ∴以前同様の質問をしましたが、完全に納得出来る回答を頂けなかったので再度質問させて頂きました。 不快に思われた方がいましたら申し訳ありません。

  • カメラ分解能の限界値(アッベの原理)のについて

    質問させて頂きます。 レンズ付きフィルムISO400における限界値をアッべの原理と言う計算式を用いて下記のようにご教授頂きました。 >レイリーの限界式は自己発光型の物体の分解能を計算する式なので、回答を訂正します。 顕微鏡の分解能計算モデルになってしまうのですが、照明された物体の分解能を計算するアッベの式があります。 さらに、光源が550nm(緑色光)を計算していましたが、460nm(太陽光)に置き換えると、アッベの限界式は次のようになります。 θ=174.8/D コントラストやレンズ収差などを加味し、経験上、この1.6~3.3倍の係数を掛けるようです。 http://www.hikari-magic.com/hikari/step1/07.html これを回答した式に当てはめていくと、1メートル離れた距離にある0.43~0.87mmが最小分解能となります。24ドットで10.4~20.1mmとなり、ご質問の実験は限界に近いと言えます。(私が1cm程度の複雑な漢字を贔屓目なしに解像していると思えた地点被写体から60cmが限界かという質問に対して) では、ISO400ネガフイルムの分解能はどのくらいあるかを調べてみると、「写ルンです」はわかりませんが、フジカラーPRO 400Hはコントラスト1000:1で125本/mmの解像力があるとされています。 35ミリ・フィルムのサイズで計算すると、  24×36mm=24×125×36×125=1350万画素 ということになります。 一方、レンズの分解能ですが、焦点距離32ミリのレンズの場合、35ミリ上での画角は68度×59度です。 http://www.cmehappy.jp/articles/angleofview.html 上にコメントしたように、アッベの式に1.6の係数を掛けると、分解能の限界は約90秒となります。これを画角に当てはめると、限界画素数は  68×60×60÷90×59×60×60÷90=642万画素 ということになります。 しかし、数学に滅法弱いため係数を掛ける段階1.6~3.3倍の所がリンク先を見ても理屈が理解出来ません。 また、レンズ付きフィルムISO400(写るんです)の限界画素数を642万画素と定義して頂きましたが、ここで掛けられた係数は3.3ではなく1.6ですが、最小倍数に近い方が限界画素数が導かれるという事でしょうか? また、理論上の分解能力を知るためにこの計算式を用いた方法は正しいのでしょうか? 大変無知な質問で申し訳ありませんがどなたかご教授下さい。

  • LIGOの時間分解能はどのくらいでしょうか?

    LIGOのレーザ干渉の明暗を読む素子の時間分解能はどのくらいでしょうか? 添付画像のような感じで、光電効果で電子がはじき出されて、で きた正孔を埋める電子の数を数えるタイミングの細かさが時間分 解能ではないか?と考えています。 素子は、CCDですか?C-MOSですか?たぶん、素子数を少なめに して、明暗諧調と時間分解能に特化した素子を使用していると予 想するのですがいかがでしょうか? レーザを受けるときに垂直に受けると、光電効果で吸収しきれな かった分が反射してアームのレーザ経路へ戻ってしまうので、入 射するレーザに対し斜めに素子を配置すると予想するのですがい かがでしょうか? 斜めに素子を配置する場合は素子数を斜めになって、レーザを受 ける面積が増えた分だけ増やして空間分解能を明暗諧調への分解 能に追加することができると予想しますがいかがでしょうか? 問のまとめ LIGOの時間分解能はどのくらいですか?  ┠レーザを受ける素子はCCDまたはC-MOSどちらですか?  | ┠素子の時間分解能はどのくらいですか?  | ┠素子数はどのくらいですか?  | └素子の諧調はどのくらいですか?  |  └明暗諧調の範囲と段階数はどのくらいですか?  ┠レーザ入射に対し斜めに配置しますか?  └測定後のレーザはどうやって捨てられますか? 下記の問に回答していて、お礼コメントでLIGOの検知能力が疑わ れていて時間分解能が分からないことに気付いたので質問しまし た。 原始宇宙に生まれ出た金の由来の矛盾 https://okwave.jp/qa/q9387367/a26202172.html no.12のお礼コメントの最後の2行を引用します。 ーーーー引用しますーーーー  さらに同じ経路を辿ったはずで、時刻差がほとんどないはずの  波動の到着時刻には、7ミリ秒も差があるはずがないのです。 ーーーー引用終わりーーーー それ以前の問答の経緯は下記です。  重力波で光の波長は変化しないのでしょうか?  https://okwave.jp/qa/q9383648/a26167111.html   LIGOとエーテルの共通点と矛盾   https://okwave.jp/qa/q9381843/a26165766.html http://www.ic.is.tohoku.ac.jp/~swk/lecture/ic2005/kagami_ic20050419.pdf 上記の『イメージセンサの基礎』p34では ーーーー引用しますーーーー  数百×数百画素で1000~10000 フレーム毎秒の物も出始めてい  る ーーーー引用終わりーーーー とあるので素子の分解能は0.0001s刻みより細かいと予想します。

  • 入射スリットと分解能の関係

    回折格子分光器で、“入射スリット幅が狭ければ波長分解能は向上する”ということですが、これは一体どういう意味なのでしょうか。 初歩的な質問で恐縮ですが、よろしくお願いします。 【URL】http://www.hl.pc.uec.ac.jp/hays/lab/monochrom.htm

  • 必要精度の決め方

    1軸上下ステージ上にセットした計測対象の上面変位を10nm以下の繰返し精度を持って測定したいのですが、このステージの必要繰返し精度は、どのあたりに妥当性があるか教えて下さい。また、その根拠も教えて下さい。 ちなみに上面変位を測定するものは、レーザ変位計で、測定分解能は10nmです。計る物の分解能が、10nmしかないため、現実的に不可能かもしれませんが、ステージの繰返し性を決める上で、重要な要素だけでも結構ですので、何かアドバイスをよろしくお願いします。

  • 計測器の精度について質問です。 精度の中には、経時誤差の精度(Acc)

    計測器の精度について質問です。 精度の中には、経時誤差の精度(Acc)と値の安定性(Sta)がありますが、その違いをもう少しわかりやすく教えていただけませんか? また一般的に測定時に出た値に対して使うのはどちらでしょうか? また、例えば精度がプラスマイナス10μmの計測器の分解能が1μmという計測器の場合、分解能が1μm単位でも、精度が10μmでプラスマイナス動くのであれば意味がないように感じますが。。。 業界の方にとってはくだらない質問かもしれませんが、ご教示よろしくお願いします。

  • 計測器の精度について質問です。 精度の中には、経時誤差の精度(Acc)

    計測器の精度について質問です。 精度の中には、経時誤差の精度(Acc)と値の安定性(Sta)がありますが、その違いをもう少しわかりやすく教えていただけませんか? また一般的に測定時に出た値に対して使うのはどちらでしょうか? また、例えば精度がプラスマイナス10μmの計測器の分解能が1μmという計測器の場合、分解能が1μm単位でも、精度が10μmでプラスマイナス動くのであれば意味がないように感じますが。。。 業界の方にとってはくだらない質問かもしれませんが、ご教示よろしくお願いします。

  • ミリ秒を○時間○分○秒にしたい

    http://www.excellenceweb.net/vba/api/what_windows_api.html のページを参考にPC起動時間を取得したいのですが サンプルは単位がミリ秒になっています。 -------------------------------------------------- Declare Function GetTickCount Lib "kernel32.dll" () As Long Sub TEST1() Dim Tickcount As Long 'GetTickCount関数から、起動からの時間が返される Tickcount = GetTickCount() MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています" End Sub -------------------------------------------------- ○時間○分○秒にしたいのですが どうすればいいでしょうか? Formatを使うと思うのですが どういうコードを書けばいいのかわかりません。 ご教授よろしくお願いします。