自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通過(guò)什么來(lái)衡量C# Socket服務(wù)的效能

開(kāi)發(fā) 后端 開(kāi)發(fā)工具
在和很多朋友交流的過(guò)程發(fā)現(xiàn)他們對(duì)這方面的了解存在一些誤區(qū),誤認(rèn)為只要把千兆帶寬跑滿(mǎn)或都支持多少個(gè)連接接入就行;其實(shí)通這兩值來(lái)確定一個(gè)服務(wù)的性能好不好是否可靠呢?下面通過(guò)一些測(cè)試來(lái)看這兩個(gè)指標(biāo)值來(lái)衡量性能的可靠性。

在寫(xiě)任何一個(gè)東西的時(shí)候都想知道實(shí)現(xiàn)后的性能到底怎樣,一般情況下可以通過(guò)一個(gè)簡(jiǎn)單的計(jì)時(shí)來(lái)確定性能是好是壞。但對(duì)于編寫(xiě)網(wǎng)絡(luò)應(yīng)用來(lái)說(shuō)確定這東西性能怎樣相對(duì)比較復(fù)雜一些,有的人會(huì)用是否能達(dá)到某個(gè)帶寬值或是否支持多少連接來(lái)確定這性能好不好。在和很多朋友交流的過(guò)程發(fā)現(xiàn)他們對(duì)這方面的了解存在一些誤區(qū),誤認(rèn)為只要把千兆帶寬跑滿(mǎn)或都支持多少個(gè)連接接入就行;其實(shí)通這兩值來(lái)確定一個(gè)服務(wù)的性能好不好是否可靠呢?下面通過(guò)一些測(cè)試來(lái)看這兩個(gè)指標(biāo)值來(lái)衡量性能的可靠性。

帶寬

對(duì)于.NET程序來(lái)說(shuō)跑滿(mǎn)千兆帶寬可以說(shuō)是一件容易的事情,也可以說(shuō)是一件非常困難的事情。

以下是100個(gè)連接從服務(wù)端獲取不同數(shù)據(jù)塊的測(cè)試結(jié)果。

 

分別測(cè)試了獲取不同大小的數(shù)據(jù)塊,可以看到只要把發(fā)送的數(shù)據(jù)塊加大把千兆帶寬跑滿(mǎn)相信是一件非常簡(jiǎn)單的事情。但如果每次請(qǐng)求獲取的數(shù)據(jù)大小在幾個(gè)byte或幾十個(gè)byte,通過(guò).NET程序想把千兆帶寬跑滿(mǎn)基本是不太可能的事情,不過(guò)服務(wù)器配置好的話(huà)也許是可以的....有興趣的朋友可以試下。

連接數(shù)

連接數(shù)這個(gè)指標(biāo)在和一些朋友交談過(guò)程似乎也被神化了,其實(shí)在.net的機(jī)制中連接數(shù)量的多少似乎對(duì)整體性能沒(méi)有多大的影響.通過(guò)以下這個(gè)測(cè)試結(jié)果可以看到:

從以上測(cè)試情況來(lái)看,1000連接和20000連接在處理相同接收和發(fā)送量的情況其CPU資源似乎看不到損耗上有多大的差異,這也許是IOCP的強(qiáng)大之處。

總結(jié)

從以上兩個(gè)測(cè)試結(jié)果來(lái)看可以得到的答案是,評(píng)測(cè).net編寫(xiě)網(wǎng)絡(luò)通訊應(yīng)用效能的一個(gè)非常重要的指標(biāo)是IO處理能力,即對(duì)應(yīng)Socket對(duì)象的讀和寫(xiě)操作。在測(cè)試的過(guò)程這兩個(gè)操作會(huì)引起操作系統(tǒng)中斷處理,如果這些操作的量很大的情況那中斷的損耗也會(huì)增長(zhǎng),所以應(yīng)用允許的情況下裁剪這兩個(gè)IO操作的次數(shù)會(huì)對(duì)程序效能有著極大的提高(當(dāng)一段時(shí)間內(nèi)發(fā)向某一連接的消息合成一個(gè)發(fā)送)。

那.NET的IO量處理能力大概多少呢?對(duì)于一臺(tái)裝有WIN2008的E3 1230V2的機(jī)器,單核大概可以處理量是(10W發(fā)送+10W接收)/秒。當(dāng)然不能通過(guò)這個(gè)基數(shù)來(lái)乘上核數(shù),隨著并發(fā)的提升存在正常的損耗外,對(duì)應(yīng)線(xiàn)程的增加和系統(tǒng)中斷也會(huì)增加,這些開(kāi)銷(xiāo)增長(zhǎng)都是非線(xiàn)性的。

 

原文鏈接:http://www.cnblogs.com/smark/archive/2013/04/07/3003468.html

責(zé)任編輯:林師授 來(lái)源: 博客園
相關(guān)推薦

2009-08-03 16:45:02

C#異步Socket

2009-08-18 16:45:40

C# Raw Sock

2009-08-27 17:14:36

C# Socket

2009-09-01 16:14:08

C# Socket類(lèi)

2011-07-04 11:35:59

2009-08-25 16:56:52

C#使用塊來(lái)分組語(yǔ)句

2009-08-20 16:33:44

Socket異步通訊

2009-09-07 14:29:47

C# Socket編程C# Socket

2009-09-04 11:00:13

通過(guò)C#引用傳遞

2009-09-01 17:51:47

C#拆箱C#裝箱

2009-08-21 11:39:58

C# Socket通信

2012-02-02 14:34:37

C# Socket

2019-02-25 14:33:50

技術(shù)研發(fā)指標(biāo)

2010-07-12 09:07:30

C#

2009-08-25 17:15:50

C#隱藏C#重寫(xiě)C#重載

2010-04-16 11:22:08

Oracle存儲(chǔ)過(guò)程

2009-08-14 16:02:50

C#啟動(dòng)windows

2009-08-25 15:38:12

C# Windows服

2009-08-07 16:43:44

C#調(diào)用Windows

2024-04-15 04:00:00

C#反射代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)