因此,对我来说,向单个WebAPI2控制器发出多个请求或向多个控制器发出相同数量的请求是否更好?也就是说,处理10个请求的单个控制器执行的处理是否比每个处理一个请求的10个控制器差?
无论哪种方式,请您解释为什么以及如何比另一方更好,以及两者之间的请求处理方式有何不同。
答案 0 :(得分:3)
完全相差0。
除非您明确更改默认行为,否则会为每个请求创建一个新的控制器实例。因此,无论您创建控制器A的10个实例还是控制器B的10个实例都没有区别:您可以获得10个实例。
不应该说,如果控制器A比控制器B贵,这显然会产生影响。
答案 1 :(得分:0)
一次通话更好。
实际上有几个因素包括这一点。主要的是这个,在任何给定的系统中,系统的效率是最慢的部分。在大多数情况下,除非您在计算中执行极其复杂的操作,否则在多层架构中,最慢的部分是信息层之间的传输。因此,跨层的多个传输表示你有一个需要10毫秒才能完成的处理,并且处理b需要25毫秒才能完成,但你的传输需要100毫秒才能完成,如果你正在进行单线程调用,你将会是等待135毫秒的呼叫可以完成两个呼叫,而235则用于多个呼叫。
但是等一下,如果两个调用都在不同的线程中,请等一下。好了,现在这是一个系统资源问题,确保你的常规线程能够更快地达到一定程度。在上述场景中,你仍然在谈论最好的10毫秒减速带,在大型全传输量表上说话时几乎是微不足道的。但是当您的呼叫超过常设线程号时会发生什么,因为api呼叫是无状态的,每个呼叫都在其自己的线程中处理。所以现在你必须支付罚金以启动一个线程,这是一个非常复杂的操作。
有一些场景可以为同一个操作做多个api调用,但是我建议只使用那些不相互依赖的东西,例如进程完成后回来再去完全独立于流程b