我应该为RestClient使用单例模式还是新模式
建议使用RestSharp
的方式是 for each 请求创建一个新实例.
它与建议用于HttpClient
的Singleton方法不同.原因是under the hoodRestSharp
使用HttpWebRequest
进行HTTP交互,而不是HttpClient
.这就是使用模式不同的原因.
如果我每次都创建它,我是否会遇到性能问题,就像
HttpClient?
不应该 for each 请求创建HttpClient
的新实例的主要原因不是性能方面的考虑.创建和初始化所花费的时间将只占后续网络调用所花费时间的一小部分.使用HttpClient
is the following的单例实例的主要原因是:
HttpClient旨在实例化一次,然后在整个过程中重复使用
应用程序的生命周期.实例化的HttpClient类
每个请求都将耗尽重负荷下可用的套接字数量
满载而归.这将导致SocketException错误.
RestSharp
不会像HttpClient
一样使用连接池,并且在使用后不会留下打开的套接字.这就是为什么每个请求创建一个RestClient
的新实例是安全的(并且是推荐的).
如果使用重用实例RestClient
,您会获得性能改进吗?那么,您将节省创建对象及其初始化的时间.然而,这段时间非常接近0
,而且它只是跟踪网络呼叫所花费时间的一小部分.你不能重复使用其他的.NET对象,比如List<T>
,是出于性能考虑吗?RestClient
美元你也应该这么做.它只是以一种暗示这种使用场景的方式开发的.