Какой объем памяти у DLR? - PullRequest
5 голосов
/ 06 марта 2011

Я рассматриваю возможность ограниченного использования ключевого слова C # dynamic. Мои начальные испытания времени были удивительными - снижение производительности менее чем за секунду для 100 000 итераций (вероятно, из-за кэширования DLR).

У меня нет доступа к профилировщику памяти, и Эрик Липперт написал :

Затем запускается DLR [...] DLR. затем запускается специальная версия компилятор C # ...

Какой объем памяти у этого занимает память и выгружается ли он при сборке динамического кода?

1 Ответ

11 голосов
/ 06 марта 2011

выгружается ли он при сборке мусора динамическим кодом?

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

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

...