2012-01-30 19 views
0

我目前通過WCF服務公開了某些功能的程序。但是,WCF服務需要大約3倍的時間才能執行與完成相同任務的應用程序相同的任務。WCF服務與Windows應用程序相比較慢

該函數在DLL中可用。我已經創建了一個WCF解決方案和一個應用程序解決方案來比較兩者的速度。此測試中沒有涉及其他代碼/功能。

這裏是由兩個(應用程序和WCF)所使用的代碼:

public String time(string file) 
{ 
    DateTime start = DateTime.Now; 
    FunctionCall(Params); 
    return String.Format("Time: {0}", DateTime.Now - start); 
} 

的WCF的配置文件是由Visual Studio默認生成所述一個2010

的應用程序需要約3秒鐘才能執行,WCF約需8秒鐘。我知道WCF服務可能會帶來一些小的開銷,所以我通過更改爲Web服務來進行相同的測試,但結果相同。每次對WCF的調用都會給出相同的3倍因子,它不僅是第一個。

與Windows應用程序相比,WCF服務調用dll的方式會如何巨大差異?

謝謝。

編輯:

服務可在IIS 7.5(在Windows Server 2008 R2) 運行該功能只解析文本文件。

問題不在於WCF如何處理請求,而是如何調用該函數。

客戶端 - WCF通信

Client Request--> WCF : Fast (~25ms) 
WCF call --> Function : Slow (~8s) 
WCF Respond --> Client: Fast (~25ms) 

Windows應用程序

Application -->Function : Medium(~3s) 

爲什麼FunctionCall當它是調用它的WCF慢?它是相同的DLL和相同的代碼,不應該以相似的速度運行?

+2

你的問題不能確切地知道你的問題不知道DLL是什麼以及你的WCF服務是如何託管的...... – Yahia 2012-01-30 19:33:09

+1

FunctionCall(Params)是做什麼的? – 2012-01-30 19:37:32

+1

第一步將打開wcf診斷。 – rerun 2012-01-30 19:40:04

回答

0

你應該添加一些關於你的wcf服務的信息。特別是關於InstanceContextMode - PerSession,PerCall或Single。如果您使用PerCall,那麼這可能是您錯過的秒數。

相關問題