Appdomain与进程相比的性能优势是什么?

4

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

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

谢谢和问候,

2个回答

2
在Windows系统中,创建新进程会有一些不可忽略的开销。这就是为什么CGI在Windows上表现不如其他操作系统(也是为什么FastCGI被开发出来的一个重要原因)。
然而,我想问一下你需要多频繁地创建这些额外的“任务”?如果非常频繁,是否有理由不能简单地使用线程池线程?如果根本不频繁,与你花费的时间相比,所获得的好处将是微不足道的。
在我看来,单独的AppDomains往往有一些特定的情况需要使用,而不是使用完整的进程或简单的线程。通常最好选择其中一种方式。

创建新进程的频率非常低。它取决于软件用户的需求。在这种情况下,我们应该使用AppDomain还是 process?你有什么建议? - Shekhar
我认为使用AppDomain所获得的系统资源优势不值得与以更简单的方式完成时所获得的开发者资源优势相比。也就是说,你在AppDomain中正确运行它所花费的时间会比在服务器上节省的时间更多。 - Andrew Barber

0

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

但是,如果将 DLL 加载到新的 AppDomain 中,则该进程将位于应用程序进程内,不需要进行完整的闪存进程设置。

所以这取决于你的情况,你怎么样了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接