Problems with QueryPerformanceCounter on Windows Server 2003 Multi-Processor Hyper-V guests? Windows Server 2003でQueryPerformanceCounterのの問題マルチプロセッサハイパーVのユーザーですか? Here’s why.ここに理由です。
A friend of mine from another group came to me with a problem he’s been having on some Windows Server 2003 guests.他のグループからの私の友人私には彼はいくつかのWindows Server 2003のユーザーを抱えている問題となった。
They’re doing some nifty stuff with the .NET彼らはいくつかの気の利いたものをやっているの。 NET Stopwatch()ストップウォッチ( ) class, and some WPF animations, which uses theクラス、およびいくつかのWPFアニメーションを使用する QueryPerformanceCounter QueryPerformanceCounterの Win32 API to figure out the timing during the animations. Apparently, when they run their code in Hyper-V, the animations look sort of… not good. Win32 APIの中には、アニメーションのタイミングを理解してください。どうやら、ときにハイパーでのコード- Vのは、アニメーションを実行するのようなもの...良くないね。
They’re using Windows Server 2003 SP2 x86, which has been allocated two virtual processors.彼らは2つの仮想プロセッサのWindows Server 2003 SP2のx86の割り当てされている、を使用している。
It turns out that our performance guru, Tony Voellm, has already encountered something like this. From Tony’sこれは我々のパフォーマンスの第一人者、トニーVoellm 、すでにこのような状況に遭遇したことがわかった。投稿者トニーの blog postブログ投稿 : :
The root issue comes about from the Win32 QueryPerformanceCounter function. By default it uses a time source called the TSC. This is a CPU time source that essentially counts CPU cycles. The TSC for each (virtual) processor can be different so there is no guarantee that reading TSC on one processor has anything to do with reading TSC on another processor. This means back to back reads of TSC on different VP's can actually go backwards. ルート問題QueryPerformanceCounterの機能については、 Win32から来ている。デフォルトでは、タイムソースと呼ばれるのをTSCを使用します。これは、基本的にCPUサイクル数は、 CPU時間のソースです。 TSCのそれぞれの ( 仮想の)プロセッサ異なることがありますので保証はありませんが読書をTSCには、別のプロセッサを1つのプロセッサをTSC読書とは何もしている。この先頭に戻る手段をTSCの別の担当VPの実際の下位に行くことを読み込みます。 Hyper-V guarantees that TSC will not go backwards on a single VP. ハイパーVの保証はTSCの後ろに、 1つの副社長に行くことはありません。
The fix for this is to modify the guest’s BOOT.INI file by adding theこのための修正は、追加することによって、ユーザーのBOOT.INIファイルを変更することです /USEPMTIMER / USEPMTIMER switch to your operating system’s boot entry. This tells the system to use a different timer for QueryPerformanceCounter-related tasks, and should alleviate the problem.お使いのオペレーティングシステムのブートエントリに切り替えます。このQueryPerformanceCounterのためのさまざまなタイマ関連のタスクを使用するようにシステムに指示し、問題を緩和する必要があります。
Written by mikekol. mikekolが記されている。 Read more great feeds at is source フィードを読んでさらにお得なソースです WEBSITE WEBサイト
no comments コメントはありません . 。
Read more articles on の詳細記事を読む Hyper-V RTM ハイパーVのRTM版以降の and および otherSoftware otherSoftware and および Miscellaneous V その他Vの . 。
- [+] Digg [ + ]ディグ : Feature this article :この記事は特集
- [+] Del.icio.us [ + ] Del.icio.us : Bookmark this article :この記事をブックマーク
- [+] Furl [ + ]畳む : Bookmark this article :この記事をブックマーク















