当一个多媒体应用程序开始播放,多媒体API自动请求MMCSS服务在每10毫秒中的最多8毫秒时间将其播放线程的优先级提升至级别16-31的最高级 (Realtime),而这决定于播放线程需要多少CPU时间。
著名Windows专家、《Windows Internals》一书作者Mark Russinovich近日在其Blog上对近几天一些论坛上提出的Windows Vista在播放多媒体文件时导致网络速度严重减慢提出了解释,他在博客中提到:
很多人正确地指出了导致媒体播放时网络性能下降问题的根源在于多媒体类计划程序(MMCSS),一项曾在Technet杂志上连续三期介绍的Vista内核新改变。多媒体播放需要媒体流具有一个稳定的速率,否则当要求达不到时播放就会出现“卡”的现象。MMCSS服务运行于服务宿主Svchost.exe 中,它自动提升音视频播放的优先级以防止其他软件过分占用播放软件应得到的CPU时间。
当一个多媒体应用程序开始播放,多媒体API自动请求MMCSS服务在每10毫秒中的最多8毫秒时间将其播放线程的优先级提升至级别16-31的最高级 (Realtime),而这决定于播放线程需要多少CPU时间。由于其它线程运行在动态优先级15以下,就算是CPU占用相当大的应用程序都不会影响播放。
你能够通过在WMP中播放一段音视频剪辑来看到这一变化。在播放时运行可靠性与性能监视器(perfmon.exe),选中性能监视器,在Thread对 象中对所有WMPlayer.exe的线程加入Priority Current选项。将图像范围调整至31(Windows中最高优先级)你就能够轻易看到被提升的线程,在这里是优先级21:
着名Windows专家、《Windows Internals》一书作者Mark Russinovich近日在其Blog上对近几天一些论坛上提出的Windows Vista在播放多媒体文件时导致网络速度严重减慢提出了解释,他在博客中提到:
很多人正确地指出了导致媒体播放时网络性能下降问题的根源在于多媒体类计划程序(MMCSS),一项曾在Technet杂志上连续三期介绍的Vista内核新改变。多媒体播放需要媒体流具有一个稳定的速率,否则当要求达不到时播放就会出现“卡”的现象。MMCSS服务运行于服务宿主Svchost.exe 中,它自动提升音视频播放的优先级以防止其他软件过分占用播放软件应得到的CPU时间。
当一个多媒体应用程序开始播放,多媒体API自动请求MMCSS服务在每10毫秒中的最多8毫秒时间将其播放线程的优先级提升至级别16-31的最高级 (Realtime),而这决定于播放线程需要多少CPU时间。由于其它线程运行在动态优先级15以下,就算是CPU占用相当大的应用程序都不会影响播放。
你能够通过在WMP中播放一段音视频剪辑来看到这一变化。在播放时运行可靠性与性能监视器(perfmon.exe),选中性能监视器,在Thread对 象中对所有WMPlayer.exe的线程加入Priority Current选项。将图像范围调整至31(Windows中最高优先级)你就能够轻易看到被提升的线程,在这里是优先级21: