提高Windows应用程序的性能

问题描述:

我已经从Visual Studio编译器向MinGW导入了一个应用程序,并遇到了性能下降的问题。 CPU的使用率从30%增加到100%。 有一件有趣的事情。如果在运行我的应用程序或之前,我已经运行Windows Media Player - 我的应用程序的性能会很好。 CPU使用率下降到30%,工作速度更快(快10倍)。 我用它搜索并找到了。它涉及一种称为多媒体类调度程序服务(MMCSS)的服务。主要问题是:此服务在Windows Vista及更高版本下分叉,但我已在Win XP下测试并导入了我的应用程序。 那么,有没有人知道如何在XP下使用这个功能?以及Windows Media Player如何提高我的应用程序的性能?提高Windows应用程序的性能

Windows Media Player更改了系统多媒体计时器的分辨率。基本上,这发生在您的应用程序确实应该使用类似高性能计时器但正在使用多媒体计时器的情况下,而这种计时器并不具备,也不打算具备必要的精确度或分辨率以成为高性能计时器。因此,程序中的任何计时本质上都不会按照他们的要求工作,如果您想要在固定时间内进行休眠或阻塞,那么这一点尤其糟糕。

+0

看起来没有帮助。我删除了所有Sleep(),并将进程优先级(HIGH_PRIORITY_CLASS或REALTIME_PRIORITY_CLASS)和我的所有线程(THREAD_PRIORITY_HIGHEST或THREAD_PRIORITY_TIME_CRITICAL)设置为适当的值。之后,表现仅增加一点。 –

+0

@ Gabriel.vs:这甚至不是一个解决方案。另外请注意,删除睡眠会驱动你的CPU%(一个睡眠线程占用CPU的0%) – MSalters

+0

这是一件很糟糕的事情,除非你明白他们做什么(他们不会让你的程序更快)。正如DeadMG指出的那样,很可能你的性能与调度粒度有关,或者你的测量依赖于多媒体计时器的分辨率,因此是错误的。第三种可能性不大可能是速度步骤。改变任何东西 – Damon