Appdomain与进程的性能优势?

时间:2010-12-28 08:08:41

标签: c# .net process appdomain

我有一个C#应用程序(foo),我从中调用另一个C#应用程序(bar)。目前我通过使用C#的Process类创建新进程来从foo应用程序调用bar应用程序。

最近我开始了解.net AppDomains。我想知道使用AppDomain而不是进程是否有任何性能优势?

谢谢和问候,

2 个答案:

答案 0 :(得分:2)

在Windows中,仅仅创建一个新进程有一些非微不足道的开销,是的。这就是为什么CGI在Windows上的表现不如在其他操作系统上表现得那么好(而且是开发FastCGI的一个重要原因)

但是,我会问您多久会创建一些额外的“工作”?如果它会非常频繁,有没有理由你不能简单地使用线程池线程?如果它根本不会频繁发生,那么与您花费时间计算如何使其发挥作用相比,您获得的好处将是微不足道的。


IMO,单独的AppDomains往往会有一些特定情况需要在整个进程或简单线程上使用它们。通过这种方式或其他方式通常会更好。

答案 1 :(得分:0)

在.net框架中创建进程不是托管进程,CLR必须咨询底层操作系统以启动新进程,并且启动新进程有一些已定义的步骤,因此可能会有一些性能下降但是有多少,没有测量。

但是,如果您将DLL加载到新的AppDomain中,那将在您的应用程序进程中,并且不需要完整的Flash进程集。

这取决于你,你好吗