2010-03-05 2 views
3

Есть ли у кого-нибудь конкретная информация об издержках использования .NET Framework 2.0/3.0/3.5?.NET Framework - для накладных расходов приложений

Меня больше всего интересуют служебные данные для каждого экземпляра и существует ли «фиксированная стоимость» независимо от количества экземпляров, например. в среде служб терминалов с 300 экземплярами приложения .NET Framework работает только один экземпляр компилятора Just-In-Time?

Было бы здорово, если бы я получить алгоритм аппроксимации, например, 10Мб, например + 50mb для JIT

ответ

2

Он работает точно так же, как неуправляемый код. CLR, JIT-компилятор и сборки .NET Framework - это библиотеки DLL, которые совместно используются любым процессом, который управляет управляемым кодом. В ОЗУ загружается только одна копия их кода, все процессы сопоставляют их страницы виртуальной памяти с одной копией.

Управляемый код имеет больше личных байтов, чем неуправляемый код, который не может использоваться совместно. Это прежде всего из-за компилятора JIT, он генерирует машинный код «на лету» по адресам, которые не будут одинаковыми для одного процесса и другого. И загрузчик и сборщик мусора, как правило, немного мясистые.

Вы удаляете служебные данные компилятора JIT с помощью Ngen.exe. Вот почему сборки .NET framework являются общими, они были Ngen-ed, когда вы установили фреймворк на машине. Вы ничего не можете сделать о кучах, но это не очень отличается от неуправляемого кода.

+0

Благодарим за указатель на NGEN –

Смежные вопросы