ライブラリ: 正確なタイマー

 

正確なタイマー:

標準タイマーの精度を向上させたものです。


作者: fxsaber

 
作業中にエラーは 出ませんか?弱いシステム(例えばネットブック)でテストしてみましたか?
 
Andrey Khatimlianskii:
作業中にエラーは 出ませんか?弱いシステム(例えばネットブック)でテストしてみましたか?

私はこのエラーに遭遇したことがありません。ネットブックで試してみないと。

 
fxsaber:

このエラーに遭遇したのは初めてだ。ネットブックで試してみないと。

ヘッツナー・レンタルサーバーでは何度かありました。

ヒントは、タイマーの定期的な再作成が潜在的な障害の原因であるということだった。

 
Andrey Khatimlianskii:

ヘッツナーのレンタルサーバーで何度か起きたことがある。

つまり、タイマーの定期的な再作成が潜在的な故障の原因になっているということだった。

ありがとう!もちろん、このバグに対する保険はない。おそらく開発者が修正してくれるだろう。

 
fxsaber:

わかったよ、ありがとう!もちろん、このバグに対する保険はない。おそらく開発者が修正してくれるだろう。

Slavaの システムエラーに関する記述から判断すると、その可能性は低い。

 
Andrey Khatimlianskii:

システムエラーに関する@Slavaの 記述から判断すると、可能性は低い =(

スラバはすでに否定的な意見を伝えている。しかし、fxsaberはそれを信じていない。

 
Rashid Umarov:

グローリーはすでに否定的な意見を伝えている。しかし、fxsaberはそれを信じていない。

何か聞き逃したかもしれない。もう一度言っていただけますか?

 

GetMicrosecondCountとEventSetTimerは明らかに異なる時間ソースを使用しており、異なる時間をカウントするため、発散することになります。

それらを同期させようとすることは、何かに対して何かであり、それは間違っている :-)

 
Maxim Kuznetsov:

GetMicrosecondCountとEventSetTimerは明らかに異なる時間ソースを使用し、異なる時間をカウントするため、発散しなければならない。

それらを同期させようとするのは何かと間違っている :-)

00:00:00:00に2つ目のタイマーを置く。そして、OnTimerを300回コールした後の時刻を見てください。00:05:00(正確には5分)は表示されません。このような不一致はライブラリにはありません。

 
fxsaber:

2番目のタイマーを00:00:00:00に設定します。そして、OnTimerを300回呼び出した後の時刻を見てください。00:05:00は表示されません。ライブラリとそのような不一致はない。

ああ、なんて頑固で鈍感な男なんだ :-)

GetMicrosecondTimerは、プロファイリング、パフォーマンス測定、サイクルの小さな遅延に使われる。明らかに、この目的のためにプロセスまたはトラックのアカウンティング・タイムを取ります(開発者は指定できますが、なぜでしょうか?)

EventSetTimerは、モノトニックまたはリアルタイムのいずれかを取り(前者の方が可能性が高い)、タイマーが時を刻むときに何らかの方法でOnTimerを呼び出す。この目的のためにシステム・ディスクリプタを使用するが、これはいくつかの問題を引き起こし、タイマーは単にEventSetTimerを介して開始されないかもしれない。

上記はすべて異なるタイマーである。ロードされたマシンでは、その違いは大きく、自然なものとなる。