2011-06-29 24 views
0

Visual StudioコンパイラからMinGWにアプリケーションをインポートしましたが、パフォーマンスが低下しました。 CPUの使用率は30%から100%に増加しました。 興味深いことが1つあります。私のアプリケーションを実行する前またはその間にWindows Media Playerを実行した場合、私のアプリケーションのパフォーマンスは上手くいくはずです。 CPU使用率は30%まで低下し、より速く(約10倍速く)動作します。 私はそれを見つけて見つけました。マルチメディアクラススケジューラサービス(MMCSS)として名付けられたサービスに関する。主な問題は、このサービスはWindows Vista以降で動作しますが、私はWin XPで自分のアプリケーションをテストしてインポートしました。 XPでこの機能を使用する方法を知っている人はいますか?そして、Windows Media Playerが私のアプリケーションのパフォーマンスをどのように向上させるのでしょうか?Windowsアプリケーションのパフォーマンスを向上

答えて

2

Windows Media Playerは、システムのマルチメディアタイマーの解像度を変更します。基本的には、アプリケーションが本当に高性能タイマーのようなものを使用していて、代わりにマルチメディアタイマーを使用している場合に発生します。高性能タイマーには必要な精度や解像度を持たない。結果として、あなたのプログラムのどんなタイミングも基本的にはうまくいきません。一定時間寝たりブロックしようとすると特に悪くなります。

+0

これは役に立たなかったようです。私はすべてのSleep()を削除し、プロセスの優先順位(HIGH_PRIORITY_CLASSまたはREALTIME_PRIORITY_CLASS)とすべてのスレッド(THREAD_PRIORITY_HIGHESTまたはTHREAD_PRIORITY_TIME_CRITICAL)を適切な値に設定しました。その後、パフォーマンスはほんの少しだけ向上しました。 –

+0

@ Gabriel.vs:これは解決策には至っていません。スリープを削除すると、CPUの消費量が増加することに注意してください(スリープスレッドは0%のCPUを消費します)。 – MSalters

+0

これは恐ろしいことです。 )DeadMGが指摘しているように、パフォーマンスがスケジューラ細分性に結びついているか、測定値がマルチメディアタイマーの解像度に依存しているため、間違っている可能性があります。何かを変更する – Damon

関連する問題