Существуют ли ограничения AppDomain / «Динамически скомпилированный код»? - PullRequest
1 голос
/ 03 августа 2011

Я планирую написать игру, в которой пользователь должен написать свой собственный код C #, чтобы играть в нее. Поскольку я не могу доверять предоставленному пользователем коду, я хочу создать домен приложений для каждого пользователя. Каждый пользователь может написать несколько классов, поэтому мне нужно динамически компилировать и создавать экземпляры каждого класса. Где некоторые из этих классов будут иметь несколько экземпляров.

Я не хочу ограничивать количество пользователей, но, скажем, зарегистрировано несколько сотен пользователей. Это значит, что мне понадобится несколько сотен доменов приложений, и я собираю / создаю еще больше классов пользовательских кодов.

Есть ли какое-то ограничение, на которое я попаду намного раньше, чем достигну числа пользователей, упомянутого ранее? (ЦП / память)

1 Ответ

1 голос
/ 03 августа 2011

Количество создаваемых доменов приложений ограничено объемом доступной памяти. Таким образом, чем больше памяти, тем больше доменов приложений вы можете создать. Нет никаких ограничений, налагаемых CLR.

И если вы хотите узнать количество доменов приложений, на которых установлена ​​конкретная ОС / аппаратное обеспечение, на котором вы хотите запускать свое приложение, вы можете написать простое приложение, которое выплевывает домены приложений с постоянной скоростью и посмотреть, как далеко вы сможете зайти. до падения Хотя это и не точное значение, оно может дать вам хорошее приближение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...