C# WCF客户端可伸缩性建议
我有一个多线程应用程序,每天调用同一服务200000多次。目前,它为每个调用实例化一个新的ClientBase自动生成的代理C# WCF客户端可伸缩性建议,c#,wcf,.net-4.0,scalability,wcf-client,C#,Wcf,.net 4.0,Scalability,Wcf Client,我有一个多线程应用程序,每天调用同一服务200000多次。目前,它为每个调用实例化一个新的ClientBase自动生成的代理 我可以做些什么来提高性能?实例化一个客户端并共享它?我应该调查异步客户机吗?如果是,可以共享吗?您的服务操作的性质是什么?单向操作可以轻松地切换到异步,只需最少的努力。特别是使用TPL(来自异步方法系列) 此外,对象实例化通常也很便宜。只要确保它没有一个沉重的构造函数。并尽量减少成员数量,以使要构造的类型尽可能轻量级。这不是一个很好的优化点 您可能需要优化服务调用,在调用
我可以做些什么来提高性能?实例化一个客户端并共享它?我应该调查异步客户机吗?如果是,可以共享吗?您的服务操作的性质是什么?单向操作可以轻松地切换到异步,只需最少的努力。特别是使用TPL(来自异步方法系列) 此外,对象实例化通常也很便宜。只要确保它没有一个沉重的构造函数。并尽量减少成员数量,以使要构造的类型尽可能轻量级。这不是一个很好的优化点
您可能需要优化服务调用,在调用过程中对数据类型(反序列化)进行优化。200000次每天调用没什么大不了的。为每个调用请求代理相当便宜(WCF在内部缓存它)。你确定瓶颈在客户端吗?更多信息:呼叫不是单向的。他们传递一些参数,然后取回数据。此外,基本授权被注入到请求头中。是否要缩短应用程序响应时间?是否允许在同一时间范围内处理更多请求?最小化系统资源使用?您的应用程序是ASP.NET站点、Silverlight应用程序还是Windows窗体?“提高性能”是什么意思?