Google
品牌Vista笔记本打折热卖 Vista系统下玩转赚钱软件 戴尔笔记本预装Vista 2999元 强势杀毒让Vista系统更安全 Win2008超越Vista之秘 360度保障你的Vista系统安全 Vista系统更快速的秘密 玩转远程教育系统
当前位置:首页 >> Vista新闻 >> Vista最新消息

Windows专家解释Vista播放多媒体文件减慢网速原因


2007年8月30日 编辑:Vista之家 - vista123.com 人气: 评论:7
史上最便宜的Windows Vista电脑
惠普戴尔超多品牌2008大礼包放送
160G超大硬盘,2G内存免费升级……

Windows Vista下最强的杀毒软件
屡获多次世界第一大奖的杀毒工具
保护你的Windows Vista系统不受侵犯

Windows Vista 系统全方位防护
Norton 360,诺顿360度全面系统保卫
把您的Vista 系统安全武装到牙齿

Windows Vista 装机必备软件大全
Google  

Vista之家www.vista123.com):Windows专家解释Vista播放多媒体文件减慢网速原因

著名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:





不仅是其他线程的活动,媒体播放也能受到网络活动的影响。当一个数据包到达系统,触发一个CPU中断,将会使网络设备的驱动程序执行一个中断服务程序 (ISR)。其它设备的中断请求在ISR运行时将被阻止,因此ISR通常用于执行一些设备记录并且在一个DPC(Deferred Procedure Call)中进行一些在一个更长的数据传输。当DPC在中断启用的状态被执行,它们将无视优先级而优先于任何线程,因此可能对媒体播放线程造成冲击。

而网络DPC的处理要求几乎是最高的,因为它将把数据包传送至TCP/IP驱动,这需要长时间的计算才能完成。TCP/IP驱动校验每个数据包、确定每个 包使用的协议、更新连接状态、寻找接收应用程序,并将接收到的数据复制到应用程序的缓冲区内。这一个Process Explorer截图显示了当我将一个大文件复制到其它系统时,DPC的CPU占用率的上升。


 
在Vista开发时对MMCSS的测试中,发现即使增加线程优先级,大规模的网络传输也会使长时间运行的DPC影响到播放线程。因此MMCSS将会发送一条消息至NDIS驱动,使其每毫秒仅传输10个数据包(每秒1万个)。

标准以太网的帧大小大约为1500字节,1万个包每秒的限制使得速度被限制在15兆每秒左右。这对于百兆网络没有影响,但将会使千兆网络的性能下降到最大值的15%。

同时在NDIS的这段限制代码中,一个BUG将使得这种限制在多网卡的系统中放大。比如如果你有一台同时拥有有线和无线网卡的机器,这个限制将扩大到8000包/秒,而三块网卡时则进一步扩大到6000包/秒。这个限制此时在百兆网络上也显而易见。

我在我的3网卡笔记本上也发现了这一限制。在我向另一台机器复制文件的同时,我打开WMP播放音乐。任务管理器显示千兆网络的使用率从20%降低至6%。



你能通过在性能监视器视图的Network对象中添加“每秒接收数据包”来监视NDIS的数据包接收情况。下面你能看到我在实验中接收数据率的变化。NDIS处理的数据包数没有达到6000的“理论最大值”,可能是因为与对方机器进行的连接准备有关。


就算限制如此之大,Internet传输也不会受影响,因为多次中转远远降低了数据包的传输率。

Vista的这个限制来自在百兆网络上高传输率的同时达到低延迟流畅播放的实验结果。这个硬编码的限制是短视的,它忽略了今日多处理器系统和千兆网络普及的现状。现在Windows的网络开发组正和MMCSS组共同努力,开发一个补丁来应对此问题。

(译者评论:不是一个BUG,是一个功能。难道为了那该死的多媒体组件,就要牺牲网络性能?那些超高端的视频编辑系统,通过千兆网编辑文件服务器 上那些码率上百Mbps的低压缩率高清视频素材,这样一来不就“卡”到死了吗?再进一步说,如果Windows Server 2008正式版上这个MMCSS服务还是默认启用的,那么攻击者就有了一种新的DoS服务器的方法,只要他有服务器的一般用户权限,3389上去一放歌, 外面疯狂DDoS、CC,服务器的当机还会远吗?)
在评论中有人提出了解决方案:

修改注册表

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv\DependOnService

将Windows Audio服务的依存服务选项中的MMCSS服务去掉,

再禁止MMCSS服务,就能破解掉这一限制。

Vista之家www.vista123.com):Windows Vista 爱好者的家

      
Vista之家网友 (122.5.14.*) 于 2007-9-3 16:04:22 发表下列评论:   [删除]
呔深奧叻!!
Kook (60.213.45.*) 于 2007-8-31 18:21:14 发表下列评论:   [删除]
慎用
Vista之家网友 (60.213.45.*) 于 2007-8-31 18:20:58 发表下列评论:   [删除]
不过改了之后声音设备没了,哈哈
Kook (60.213.45.*) 于 2007-8-31 18:18:17 发表下列评论:   [删除]
打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv处,将右侧的DependOnService值中最后一个MMCSS去掉,
Win键+R打开运行,键入services.msc然后回车,找到Multimedia Class Scheduler,右击看属性,改为禁用或手动就好了
西西 (121.230.51.*) 于 2007-8-30 22:21:53 发表下列评论:   [删除]
修改方法具体点,虽然你也是引用的,有谁成功修改的,来说下呢“如何禁止MMCSS服务”
Vista之家网友 (218.86.37.*) 于 2007-8-30 20:15:15 发表下列评论:   [删除]
請問如何禁止MMCSS服务阿
Vista之家网友 (121.70.47.*) 于 2007-8-30 14:12:14 发表下列评论:   [删除]
看不懂 能否说简单些
发表评论(最新评论将在5分钟内出现
昵称:
内容:
(按Control+Enter直接提交)   点击一下,Vista问题有问必答
Vista优化大师
闪游 - 最快最强最安全的网络浏览器
搜狗拼音输入法

Windows Vista 最好的木马间谍查杀软件
彻底保护你的电脑,防止Trojan(特洛伊木马)和病毒
防止黑客入侵您的Windows Vista系统

史上最便宜的Windows Vista笔记本大比拼
七天免费试用?免费升级内存硬盘?
更有超多礼物发送中,不抢白不抢

全方位、360度的保护你的 Windows Vista 系统
无忧上网,保护您的系统没有病毒
把您的 Windows Vista 系统安全武装到牙齿

戴尔(DELL)笔记本预装Windows Vista送现金200元
预装正版Windows Vista家庭高级版 享受玻璃特效
2008大礼包 硬盘内存显卡升级还折扣

Windows Vista 装机必备软件大全
压缩、备份、杀毒、优化、办公、美化、虚拟光驱等常用软件
Windows Vista操作系统软件安装一条龙

Google  

热门文章