Моя память процесса постоянна? - PullRequest
0 голосов
/ 04 октября 2010

Это академический вопрос.Если у меня есть постоянное количество переменных, объектов и т. Д. И мы предполагаем, что GC не сработает, и нет узких мест.Может ли какой-то другой фактор вызывать колебания памяти моего приложения?В таком случае будет ли выделенная моим процессом память оставаться постоянной?

Ответы [ 3 ]

1 голос
/ 04 октября 2010

Ваш сценарий вымышлен и нереален:

И мы предполагаем, что GC не пойдет в

Ну, так и будет. Ваше приложение может использовать разные пути во время его исполнения. Если это так, то состояние может время от времени отличаться, ссылки на объекты в куче могут храниться дольше и т. Д. Я не вижу цели этого вопроса.

1 голос
/ 05 октября 2010

Возможно, как в случае, упомянутом в вопросе на Как эти люди избегают создания мусора? , чтобы привести систему в состояние, в котором она работает с постоянным набором памяти иGC не происходит (потому что ничего не выделено, и его нужно будет собирать, и оно никуда не исчезнет).Ссылка на статью даже имеет практический (но очень специализированный) случай.

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

1 голос
/ 04 октября 2010

Вы можете вызывать неуправляемые функции, используя взаимодействие, которое изменяет объем доступной памяти.Также JIT-компилятор может включиться в любой момент, чтобы преобразовать IL в машинный код и, вероятно, потреблять память.Кроме того, если предположить, что GC не сработает, это не то, что вы можете предположить , если вы используете .NET, поэтому любой вывод, который вы сделаете, исходя из неверного предположения, будет неверным.Поэтому, чтобы ответить на ваш вопрос, вы не можете предполагать, что память останется постоянной.

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