Performance benefits of Appdomain vs process?

I have an C# application (foo) from which I am calling another C# application (bar). Currently I am invoking bar application from foo application by creating new process using Process class of C#.

Recently I came to know about .net AppDomains. I would like to know is there any performance benefit for using AppDomains instead of process?

Thanks and Regards,

Answers


There is some non-insignificant overhead in Windows of simply creating a new process, yes. This is why CGI has historically not performed as well on Windows as on other operating systems (and a big reason why FastCGI was developed instead)

However, I would ask how frequently are you going to be creating these extra 'jobs'? If it's going to be very frequent, is there a reason you can't simply use a thread pool thread? If it's not going to be frequent at all, the benefit you would gain would be minor compared to the time you will spend figuring out how to get it to work.


IMO, separate AppDomains tend to have some specific situations that call for their use over a full process or a simple thread. It's usually better to go one way or the other.


Creation of a process in .net framework is not a managed process , CLR has to consult underlying OS to initiate a new process and initiating a new process has some defined steps so there may be some performance degradation but how much , there is no measurement.

But , if you load your DLL into a new AppDomain, that will be inside your application process and would not require a full flash process set.

so that depends , how are you


Need Your Help

How to sort productcollection by category and sku?

magento

I'm using a custom extension for Magento, with the following code to show a list of products.

MDX: how to get a formatted attribute value?

sql-server ssas mdx

I have a slight problem with an MDX query in SSAS, MSSQL 2012.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.