CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > WinSystem子站 > 技巧

Vista多媒体播放和网络吞吐率

作者: Liu_hui ,  出处:Windows Vista博客, 责任编辑: 韩博颖, 
2008-06-02 16:14
  前段时间网上新出现了一条新闻,在Windows Vista中播放多媒体文件会导致网络性能降低。结果证明这个问题确实存在,对这个问题进行了比较合理的解释。

  要看到这个现象,你可以在Windows Media Player(WMP)中播放一个音频或视频剪辑,同时运行性能和可靠性监视器(开始-运行-Perfmon),选择性能监视器节点,在对象实例中为所有Wmplayer实例添加Priority Current计数器。随后将图表垂直比例的最大值设置为31(Windows上最高的优先级),随后你就能直接看到被提升了优先级的线程,如下图所示的21:

  

  除了可能被其他线程影响外,媒体文件的播放还可能被网络活动所影响。当一个网络数据包到达系统后,会触发一个CPU中断,这将导致数据包到达的设备的驱动程序执行一个Interrupt Service Routine(ISR)操作。当这个ISR运行的时候,其他设备的中断会被临时阻止,因此ISR通常会进行设备book-keeping操作,然后用一个更耗时的操作将数据从收到的设备传输到启用了设备中断的延迟过程调用(Deferred Procedure Call,DPC)中。虽然DPC的执行是允许中断的,不过在运行了这些东西的处理器上,它的优先级要比其他任何线程还要高,无论线程的优先级是什么,这就有可能影响到播放媒体文件的线程。

  网络DPC的接收操作是最“昂贵”的,因为这个过程中包括了将数据包传递给TCP/IP驱动的过程,而这个过程有可能导致很大的运算量。TCP/IP驱动会验证每个数据包,判断数据包所用的协议,更新连接状态,找到接收数据包的应用程序,然后将收到的数据复制到应用程序的缓冲中。下面的Process Explorer截图显示了当我从别的系统上复制大文件的时候用于DPC的CPU时钟周期是如何变化的:

  

  在Vista的开发过程中对MMCSS的测试显示,就算有线程优先级提升(thread-priority boosting)功能,较重的网络通讯依然可能导致需要足够长时间执行的DPC妨碍到播放线程对多媒体文件的流畅播放,最终的播放结果可能会断断续续。因此MMCSS的“反停顿”机制被扩展为包含了对网络活动的调节。这个功能是通过给NDIS设备驱动天价了一个指令实现的,而NDIS是将网络适配器收到的数据包传输给TCP/IP驱动的主要组件,通过添加指令,NDIS每毫秒可以“标示”或者传递最多10个数据包(也就是每秒10000个)。

?4?? 9 1 2 3 4 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i