我目前通过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和相同的代码,不应该以相似的速度运行?
你的问题不能确切地知道你的问题不知道DLL是什么以及你的WCF服务是如何托管的...... – Yahia 2012-01-30 19:33:09
FunctionCall(Params)是做什么的? – 2012-01-30 19:37:32
第一步将打开wcf诊断。 – rerun 2012-01-30 19:40:04