Где находится куча, созданная JIT (C #) - PullRequest
0 голосов
/ 20 марта 2012

У меня всегда был такой вопрос: где (ОЗУ / ЖЕСТКИЙ ДИСК / какой-то другой (?)) Находится куча?

если я загружу файл 2 ГБ через код в памяти, то куда он пойдет?

Также, где этот "стек" расположен в физическом месте? БАРАН ?

Может кто-нибудь из реальной команды внедрения может сообщить нам об этом? потому что то, что говорит большинство людей, это его RAM. Но я действительно хотел знать, где и как? Пожалуйста, поделитесь некоторыми хорошими статьями, если здесь сложно ответить.

Ответы [ 4 ]

2 голосов
/ 20 марта 2012

Что и где находится стек-и-куча

Этот вопрос и ответы на него объясняют его очень подробно.Он охватывает как стек, так и кучу.Как его использовать, различия и т. Д. Он также имеет приятную графику!

2 голосов
/ 20 марта 2012

Я бы порекомендовал прочесть следующую статью:

http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx

. Куча .NET - это только часть адресного пространства вашего приложения.То, находится ли он (и все объекты, размещенные в нем) в настоящее время в ОЗУ или на диске, зависит от текущего давления памяти всей системы и решений VMM.Также части кучи могут находиться в оперативной памяти, а другие части на диске одновременно.

0 голосов
/ 20 марта 2012

, если вы загрузите 2GB файловую память процесса .NET, это приведет к сбою в 32-битной системе, так как фреймворк приблизительно содержит 1.2GB в 32-битных системах.

Воспоминания, о которых вы говорите, находятся в RAM для .NET managed assemblies.Для других, из-за возможной перестановки памяти, выполненной самой ОС в условиях низкого RAM памяти, может частично завершить на диске пространство.

0 голосов
/ 20 марта 2012

Когда вы запускаете .NET exe, он загружает MSCorEE.dll, который будет содержать CLR.CLR создаст стек и кучу в памяти процесса.Он будет запрашивать дополнительную память для процесса, если он ему потребуется.

Они будут расположены в ОЗУ, хотя операционная система будет абстрагировать ее от вас (например, это может быть файл подкачки).

...