10 回答

TA貢獻(xiàn)1911條經(jīng)驗 獲得超7個贊
1 本機(jī)和遠(yuǎn)程用的是同一個wcf服務(wù)嗎? 不是的話和賬號可能有關(guān)
2 localhost訪問wcf是否正常?
3 如果仍有問題,你可以使用VS的“分析、探查器”采樣一下程序,看哪個函數(shù)在耗時

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毫秒。

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊
@MoonSky:?控制臺程序和雙工的客戶端程序的設(shè)置區(qū)別在哪里,是否這些引起的?
另外看看系統(tǒng)的日志查看器 有沒有告警什么的,也是線索

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)的日志查看器里面是看不到任何警告或者報錯的信息的。沒有錯誤只是慢。

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模式下面,估計就能好了。

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊
是程序慢,把獲取內(nèi)存信息的那段注釋掉,別的瞬間完成。單獨執(zhí)行那個函數(shù)快,但用WCF調(diào)用那個函數(shù)就慢。
- 10 回答
- 0 關(guān)注
- 661 瀏覽
添加回答
舉報