Преимущества производительности Appdomain против процесса? - PullRequest
4 голосов
/ 28 декабря 2010

У меня есть приложение C # (foo), из которого я вызываю другое приложение C (панель). В настоящее время я вызываю приложение bar из приложения foo, создавая новый процесс с использованием класса Process в C #.

Недавно я узнал о доменах приложений .net. Я хотел бы знать, есть ли какой-либо выигрыш в производительности при использовании доменов приложений вместо процессов?

Спасибо и всего наилучшего,

Ответы [ 2 ]

2 голосов
/ 28 декабря 2010

В Windows есть некоторые несущественные издержки, связанные с простым созданием нового процесса, да. Вот почему CGI исторически не работал так же хорошо в Windows, как и в других операционных системах (и это большая причина, по которой вместо этого был разработан FastCGI)

Однако я хотел бы спросить, как часто вы собираетесь создавать эти дополнительные «рабочие места»? Если это будет происходить очень часто, есть ли причина, по которой вы не можете просто использовать поток пула потоков? Если это не будет частым явлением, вы получите небольшую выгоду по сравнению с тем временем, которое вы потратите на выяснение того, как заставить его работать.


IMO, отдельные домены приложений, как правило, имеют определенные ситуации, которые требуют их использования в течение всего процесса или простого потока. Обычно лучше идти тем или иным путем.

0 голосов
/ 28 декабря 2010

Создание процесса в .net framework не является управляемым процессом, CLR должна обратиться к базовой ОС, чтобы инициировать новый процесс, а запуск нового процесса имеет несколько определенных шагов, поэтому может быть некоторое снижение производительности, но насколько без измерений.

Но если вы загрузите свою DLL в новый домен приложений, это будет внутри процесса приложения и не потребует полного набора процессов флэш-памяти.

так что зависит, как дела

...