日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

專家釋疑 Vista播放多媒體減慢網(wǎng)速原因

著名Windows專家、《Windows Internals》一書作者M(jìn)ark Russinovich近日在其Blog上對近幾天一些論壇上提出的Windows Vista在播放多媒體文件時導(dǎo)致網(wǎng)絡(luò)速度嚴(yán)重減慢提出了解釋,他在博客中提到:
很多人正確地指出了導(dǎo)致媒體播放時網(wǎng)絡(luò)性能下降問題的根源在于多媒體類計(jì)劃程序(MMCSS),一項(xiàng)曾在Technet雜志上連續(xù)三期介紹的Vista內(nèi)核新改變 。多媒體播放需要媒體流具有一個穩(wěn)定的速率,否則當(dāng)要求達(dá)不到時播放就會出現(xiàn)“卡”的現(xiàn)象 。MMCSS服務(wù)運(yùn)行于服務(wù)宿主Svchost.exe 中,它自動提升音視頻播放的優(yōu)先級以防止其他軟件過分占用播放軟件應(yīng)得到的CPU時間 。
當(dāng)一個多媒體應(yīng)用程序開始播放,多媒體API自動請求MMCSS服務(wù)在每10毫秒中的最多8毫秒時間將其播放線程的優(yōu)先級提升至級別16-31的最高級 (Realtime),而這決定于播放線程需要多少CPU時間 。由于其它線程運(yùn)行在動態(tài)優(yōu)先級15以下,就算是CPU占用相當(dāng)大的應(yīng)用程序都不會影響播放 。
你能夠通過在WMP中播放一段音視頻剪輯來看到這一變化 。在播放時運(yùn)行可靠性與性能監(jiān)視器(perfmon.exe),選中性能監(jiān)視器,在Thread對 象中對所有WMPlayer.exe的線程加入Priority Current選項(xiàng) 。將圖像范圍調(diào)整至31(Windows中最高優(yōu)先級)你就能夠輕易看到被提升的線程,在這里是優(yōu)先級21:
不僅是其他線程的活動,媒體播放也能受到網(wǎng)絡(luò)活動的影響 。當(dāng)一個數(shù)據(jù)包到達(dá)系統(tǒng),觸發(fā)一個CPU中斷,將會使網(wǎng)絡(luò)設(shè)備的驅(qū)動程序執(zhí)行一個中斷服務(wù)程序 (ISR) 。其它設(shè)備的中斷請求在ISR運(yùn)行時將被阻止,因此ISR通常用于執(zhí)行一些設(shè)備記錄并且在一個DPC(Deferred Procedure Call)中進(jìn)行一些在一個更長的數(shù)據(jù)傳輸 。當(dāng)DPC在中斷啟用的狀態(tài)被執(zhí)行,它們將無視優(yōu)先級而優(yōu)先于任何線程,因此可能對媒體播放線程造成沖擊 。
而網(wǎng)絡(luò)DPC的處理要求幾乎是最高的,因?yàn)樗鼘褦?shù)據(jù)包傳送至TCP/IP驅(qū)動,這需要長時間的計(jì)算才能完成 。TCP/IP驅(qū)動校驗(yàn)每個數(shù)據(jù)包、確定每個 包使用的協(xié)議、更新連接狀態(tài)、尋找接收應(yīng)用程序,并將接收到的數(shù)據(jù)復(fù)制到應(yīng)用程序的緩沖區(qū)內(nèi) 。這一個Process Explorer截圖顯示了當(dāng)我將一個大文件復(fù)制到其它系統(tǒng)時,DPC的CPU占用率的上升 。
在Vista開發(fā)時對MMCSS的測試中,發(fā)現(xiàn)即使增加線程優(yōu)先級,大規(guī)模的網(wǎng)絡(luò)傳輸也會使長時間運(yùn)行的DPC影響到播放線程 。因此MMCSS將會發(fā)送一條消息至NDIS驅(qū)動,使其每毫秒僅傳輸10個數(shù)據(jù)包(每秒1萬個) 。
標(biāo)準(zhǔn)以太網(wǎng)的幀大小大約為1500字節(jié),1萬個包每秒的限制使得速度被限制在15兆每秒左右 。這對于百兆網(wǎng)絡(luò)沒有影響,但將會使千兆網(wǎng)絡(luò)的性能下降到最大值的15% 。
同時在NDIS的這段限制代碼中,一個BUG將使得這種限制在多網(wǎng)卡的系統(tǒng)中放大 。比如如果你有一臺同時擁有有線和無線網(wǎng)卡的機(jī)器,這個限制將擴(kuò)大到8000包/秒,而三塊網(wǎng)卡時則進(jìn)一步擴(kuò)大到6000包/秒 。這個限制此時在百兆網(wǎng)絡(luò)上也顯而易見 。
我在我的3網(wǎng)卡筆記本上也發(fā)現(xiàn)了這一限制 。在我向另一臺機(jī)器復(fù)制文件的同時,我打開WMP播放音樂 。任務(wù)管理器顯示千兆網(wǎng)絡(luò)的使用率從20%降低至6% 。
你能通過在性能監(jiān)視器視圖的Network對象中添加“每秒接收數(shù)據(jù)包”來監(jiān)視NDIS的數(shù)據(jù)包接收情況 。下面你能看到我在實(shí)驗(yàn)中接收數(shù)據(jù)率的變化 。NDIS處理的數(shù)據(jù)包數(shù)沒有達(dá)到6000的“理論最大值”,可能是因?yàn)榕c對方機(jī)器進(jìn)行的連接準(zhǔn)備有關(guān) 。
就算限制如此之大,Internet傳輸也不會受影響,因?yàn)槎啻沃修D(zhuǎn)遠(yuǎn)遠(yuǎn)降低了數(shù)據(jù)包的傳輸率 。
【專家釋疑 Vista播放多媒體減慢網(wǎng)速原因】Vista的這個限制來自在百兆網(wǎng)絡(luò)上高傳輸率的同時達(dá)到低延遲流暢播放的實(shí)驗(yàn)結(jié)果 。這個硬編碼的限制是短視的,它忽略了今日多處理器系統(tǒng)和千兆網(wǎng)絡(luò)普及的現(xiàn)狀 ?,F(xiàn)在Windows的網(wǎng)絡(luò)開發(fā)組正和MMCSS組共同努力,開發(fā)一個補(bǔ)丁來應(yīng)對此問題 。

推薦閱讀