Azure Functions 性能和依赖注入

Man*_*kar 1 c# dependency-injection azure azure-functions

我一直在从性能改进的角度研究 Azure 函数与 vs 2017。azure 函数目前不支持依赖注入。但是如果我们使用变通方法(类似于https://blog.wille-zone.de/post/azure-functions-proper-dependency-injection/)并从函数的静态构造执行依赖注入,它有什么影响在性能上?特别是有两个托管计划。

1)消费计划:如果我理解正确,有可能每个请求都是单独的,并且会在这个计划中创建一个新的主机。这是否意味着每次都会调用静态构造函数?并使所有对象再次实例化?在这种情况下,消费计划应该避免依赖注入吗?

2)应用服务计划:这将有一个专用的虚拟机,功能将在其上运行,并且如果启用“始终开启”,功能将仅启动一次。在这种情况下,依赖注入更有意义吗?或者一旦触发完成,该函数仍然会退出上下文,并且每次都会创建新实例?

我找不到关于这种可能性的正确解释(如果有的话)。有人有想法吗?

Mik*_*kov 5

消费计划并不意味着您每次请求都会获得一个新主机。现有主机将被重新用于后续请求,除非 a) 它们太忙,向外扩展并且您获得一个新主机,或者 b) 几分钟内没有请求,并且您唯一的主机被回收。

总的来说,我认为这种依赖注入在大多数情况下不会成为瓶颈。