我目前正在开发一个C#MVC REST web api,并试图在我们设计的两种可能性中选择一种。C#静态方法vs对象实例
没有太深入我们的设计,我们打算有一个数据访问类,我们将其称为DataSource
。每个DataSource
将需要执行小的,包含的逻辑块来正确地建立适当的响应。由于希望能够在将来热载入代码,我们不希望在DataSource
上简单地使用这些函数,而是希望它们由其他程序集提供。我们有这个实施的概念证明,到目前为止,这是非常好的。
我想要决定的是用一个静态函数写一个静态类,或者编写一个工厂方法来创建这些类的实例,它们有一个实例方法,称为ExecuteQuery
。
为每个请求创建多个短期对象与调用静态方法之间的性能考虑因素是什么?
直观地说,静态方法会更快,但我已经期待我会遇到一些头痛的问题,通过反射来调用它们(以支持热载代码要求)。
如果对短期对象没有巨大的惩罚,那么他们可能仅凭简单就赢得胜利。
我们期望的负载相关信息:在300ms以内
- 响应时间 - 800毫秒范围
- 约2000 Web客户端的约4000客户
- 客户做查询
- 高峰负荷平均负载每2 - 5秒
- 客户端每秒查询1次峰值速率
此外,每个DataSource
将创建最多8个,其中3个平均值为这些实例。
可能你的意图使用反射将导致比静态与实例使用更大的性能影响。正如其他人所评论的那样,你应该选择使设计意义最大的形式。另外,由于你有一些预期的指标,你可以嘲笑一个静态/实例实现,并了解你将面临的开销。 –