2017-01-03 5 views
-3

Я попытался экспортировать свою запись, чтобы выделить и экспортировать экспортированные элементы в ОС Windows 8. Я могу видеть детали, уменьшенные в памяти в диспетчере задач. Но тот же самый код, который я использовал в ОС Windows 2008. После размещения экспортированных элементов разница в памяти отсутствует. Я могу использовать приведенный ниже код, чтобы очистить сборщик мусора.Есть ли разница между производительностью Garbage Collector для сервера Windows 2008 и ОС Windows 8.1?

ExportedElement = null; 
GC.SuppressFinalize(obj); 

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

+1

вопрос не имеет никакого отношения. Вы не должны указывать вещи на «null» в .NET, а 'SuppressFinalize' не имеет никакого отношения к вызову сборщика мусора. Вы пытаетесь «помочь» слишком много. Просто позвольте сборщику мусора сделать свое дело. –

ответ

0

Да, существуют различия в поведении коллекции мусора между различными платформами Windows и .NET Framework.

Нет, GC.SuppressFinalize() просто советует CLR не вызывать финализатор объекта при сборе объекта. Этот метод не заставляет сбор мусора и не препятствует сбору конкретного объекта (или что-то, что вы подразумеваете под «сборщиком мусора»).

Для получения дополнительной информации, я рекомендую ознакомиться с документацией Microsoft: https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx