第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WCF獲得客戶端的內(nèi)存信息慢(特定客戶端Server 2008 R2 SP1+64位操作系統(tǒng))

WCF獲得客戶端的內(nèi)存信息慢(特定客戶端Server 2008 R2 SP1+64位操作系統(tǒng))

青春有我 2018-12-07 13:11:51
功能描述:服務(wù)器端獲得客戶端的硬件信息。絕大多數(shù)都正常,只有一種情況不正常。 特定客戶端系統(tǒng)信息:Windows Server 2008 R2 SP1 系統(tǒng)類型:64位操作系統(tǒng) 在該客戶端本機(jī)獲得總內(nèi)存和可用內(nèi)存信息平均需要280毫秒。 但遠(yuǎn)程WCF調(diào)用需要50多秒。 經(jīng)過調(diào)研在其他的客戶端上都正常,上面這一種(Server 2008 R2+64位操作系統(tǒng))獲得內(nèi)存信息特別慢,而獲得其他硬件信息(比如CPU信息、光驅(qū)等)正常。感覺是WCF的問題(本機(jī)很正常,遠(yuǎn)程調(diào)用慢),不知道怎么解決,還望了解的指點一二。 WCF的綁定是netTcpBinding的,下面是綁定的配置文件 <bindings> <netTcpBinding> ???? ??? <binding name="tcpBinding" receiveTimeout="24.00:00:00" transferMode="Buffered" maxReceivedMessageSize="2147483647"> ????????? <reliableSession inactivityTimeout="24.00:00:00"/> ? <security mode="None"> <transport clientCredentialType="None" protectionLevel="None"/> ??????????? <message clientCredentialType="None" algorithmSuite="Default"/> ????????? </security>??? </binding> </netTcpBinding></bindings> 獲得內(nèi)存信息的代碼 Stopwatch sw = new Stopwatch(); sw.Start(); ?????????? //總內(nèi)存大小 ?????????? ulong MemoryCapacity = 0; ????? //可用內(nèi)存大小 ????????? ulong MemoryOccupancy = 0; ?????? ManagementClass memoryHelper = new ManagementClass("Win32_PhysicalMemory"); ????????? ManagementObjectCollection moc = memoryHelper.GetInstances(); ??????????? foreach (ManagementObject m in moc) ??????????? { ?MemoryCapacity = ulong.Parse(m.Properties["Capacity"].Value.ToString()) / 1024 / 1024; ??????? ???? } ????? //獲取內(nèi)存可用大小 ???????? memoryHelper = new ManagementClass("Win32_PerfFormattedData_PerfOS_Memory"); ???? moc = memoryHelper.GetInstances(); ??????? foreach (ManagementObject m in moc) ??????????? { ?? MemoryOccupancy = ulong.Parse(m.Properties["AvailableMBytes"].Value.ToString()); ????? } ?????????? Console.WriteLine("獲取內(nèi)存信息耗時(單位毫秒):"+sw.ElapsedMilliseconds); sw.Stop(); ???????? Console.ReadLine();
查看完整描述

10 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗 獲得超7個贊

1 本機(jī)和遠(yuǎn)程用的是同一個wcf服務(wù)嗎? 不是的話和賬號可能有關(guān)

2 localhost訪問wcf是否正常?

3 如果仍有問題,你可以使用VS的“分析、探查器”采樣一下程序,看哪個函數(shù)在耗時

查看完整回答
反對 回復(fù) 2019-01-21
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗 獲得超6個贊

本機(jī)模擬服務(wù)端和客戶端時正常,服務(wù)端和客戶端是雙工的,服務(wù)端發(fā)出請求,客戶端執(zhí)行讀取內(nèi)存信息返回給服務(wù)端。絕大多數(shù)的都正常,只有?Server 2008 R2 SP1+64位操作系統(tǒng)的才會慢。我逐步寫日志的,發(fā)現(xiàn)是在讀內(nèi)存的地方耗時的。

另外我還寫了個單獨獲得內(nèi)存的控制臺程序,在那種機(jī)型上測試,只要280毫秒。

查看完整回答
反對 回復(fù) 2019-01-21
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊

@MoonSky:?控制臺程序和雙工的客戶端程序的設(shè)置區(qū)別在哪里,是否這些引起的?

另外看看系統(tǒng)的日志查看器 有沒有告警什么的,也是線索

查看完整回答
反對 回復(fù) 2019-01-21
?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗 獲得超2個贊

@2012:?調(diào)用的是相同的函數(shù),不同之處一個是直接調(diào)用獲取內(nèi)存信息的函數(shù),一個是遠(yuǎn)程WCF調(diào)用那個執(zhí)行獲取內(nèi)存信息的函數(shù)。系統(tǒng)的日志查看器里面是看不到任何警告或者報錯的信息的。沒有錯誤只是慢。

查看完整回答
反對 回復(fù) 2019-01-21
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗 獲得超21個贊

單從64位操作系統(tǒng)和你的new ManagementClass("Win32_PhysicalMemory");來看,可以推斷出問題是64位系統(tǒng)調(diào)用了32位的API造成的問題,正常情況下,64位系統(tǒng)應(yīng)該調(diào)用64位的API,除非項目編譯選項里強(qiáng)制指定該程序是32位運行的,默認(rèn)的Any PC方式會在64位系統(tǒng)下,按照64位模式運行,所有.NET的方法全部調(diào)用64位的API。

你嘗試將客戶端項目強(qiáng)制運行在X86模式下面,估計就能好了。

查看完整回答
反對 回復(fù) 2019-01-21
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊

嘗試了,沒看到變快的效果。

查看完整回答
反對 回復(fù) 2019-01-21
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊

確定是程序慢還是請求過程慢

查看完整回答
反對 回復(fù) 2019-01-21
?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊

是程序慢,把獲取內(nèi)存信息的那段注釋掉,別的瞬間完成。單獨執(zhí)行那個函數(shù)快,但用WCF調(diào)用那個函數(shù)就慢。

查看完整回答
反對 回復(fù) 2019-01-21
  • 10 回答
  • 0 關(guān)注
  • 661 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號