我目前正在开发一个 C# MVC REST web api,并试图在我们的设计的两种可能性之一之间进行选择。
在不深入了解我们的设计的情况下,我们打算创建一个用于数据访问的类,我们将其称为DataSource
. 每个DataSource
人都需要执行小的、包含的逻辑块来正确构建适当的响应。由于希望将来能够热加载代码,我们不想简单地将这些功能放在 上DataSource
,而是希望它们由其他程序集提供。我们已经实现了这个概念的证明,到目前为止,一切都很好。
我试图在两者之间做出决定是编写一个带有单个静态ExecuteQuery
函数的静态类,还是编写一个工厂方法来创建这些类的实例,这些实例有一个名为ExecuteQuery
.
每个请求创建多个短期对象与调用静态方法之间的性能考虑是什么?
直观地说,静态方法会更快,但我已经预料到通过反射调用它们会有点头疼(以支持热加载的代码要求)。
如果对短寿命的物体没有巨大的惩罚,那么它们可能仅靠简单性就胜出。
有关我们预期负载的相关信息:
- 响应时间在 300ms - 800ms 范围内
- 大约 2000 个 Web 客户端的平均负载
- 约 4000 个客户端的峰值负载
- 客户端每 2 - 5 秒查询一次
- 每秒 1 次查询的客户端峰值速率
此外,每个DataSource
实例最多创建 8 个,平均为 3 个。