Windowsのミリ秒の間隔がおおざっぱすぎる件 【調査中】
Windowsで性能試験用のアプリケーションをつくる機会があって気付いたことがあったので参考になればと思います。
ツールは、リクエスト送信し、ミリ秒単位でターンアラウンドタイムを計測するのですが、んん、0ミリ秒と16ミリ秒というのが多い、始めは何かしらサーバ側でウェイトでも設けているのかと思ったのですが、クライアント側でした。
詳細
Windows時間分解能というものですが、詳細はこのサイトが分かりやすいです。
実機確認
実際の振る舞いを確認するため、以下のスクリプトをコピペして実行してみてください。
> cscript test.vbs
現在時刻をミリ秒単位で取得して、表示するものですが、飛び飛びになっていると思います。この間隔がOSのタイマの割り込み周期(== 時間分解能)になります。
'' test.vbs Option Explicit Dim dtmNowTime ' 現在時刻 Dim lngHour ' 時 Dim lngMinute ' 分 Dim lngSecond ' 秒 Dim lngMilliSecond ' ミリ秒 Dim dDate ' 日付 Dim strDate ' Dim strLongDate ' Dim strShortDate ' dDate = Now strShortDate = Year(dDate) & Right("0" & Month(dDate), 2) & Right("0" & Day(dDate), 2) Do dtmNowTime = Timer lngMilliSecond = dtmNowTime - Fix(dtmNowTime) lngMilliSecond = Right("000" & Fix(lngMilliSecond * 1000), 3) dtmNowTime = Fix(dtmNowTime) lngSecond = Right("0" & dtmNowTime Mod 60, 2) dtmNowTime = dtmNowTime \ 60 lngMinute = Right("0" & dtmNowTime Mod 60, 2) dtmNowTime = dtmNowTime \ 60 lngHour = Right("0" & dtmNowTime, 2) strLongDate = lngHour & ":" & lngMinute & ":" & lngSecond & "." & lngMilliSecond WScript.StdOut.WriteLine strShortDate & " " & strLongDate Loop
HALを確認
クライアントPCでみてみるとHALは「halmacpi.dll」を使用しています。(system32下hall.dllのプロパティ)16ミリ秒になるようです。
16ミリでは、今回の試験目的ではキビシイので、さらに高分解能にできないものか、調査してみようと思います。
関連記事
-
フリーのロードバランサ Poundの導入検討
ロードバランサの導入依頼をもらったので検討に入ります。まずは、軽量なPoundを調査してみました。 http://www.apsis.ch/pound/ 机上での一次調査(サイトの訳と感想です
-
Windows XP/2003 ログオフできない (イベント ID:1073)
いつからかは はっきりしないのですが、Windows XPでログオフしても反応がないようになってしまいました。今回いろいろ試してみて解決できたので、エントリーします。 イベントビューアを確認
-
Skype 特定の機能を無効に
「skypeを導入したいが、ファイルの送信などで機密情報の流出はもちろん避けたい。」 という要望があり簡単にできるか調査してみました。 以下のサイトを参考に Active directory環境な
- PREV
- 画像をリサイズ
- NEXT
- Twenty Ten カスタマイズ
Comment
参考サイト
http://kwski.net/architecture/539/