Поделиться через


GC.RemoveMemoryPressure(Int64) Метод

Определение

Информирует среду выполнения о том, что неуправляемая память освобождена и ее более не требуется учитывать при планировании сборки мусора.

public:
 static void RemoveMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void RemoveMemoryPressure (long bytesAllocated);
public static void RemoveMemoryPressure (long bytesAllocated);
[<System.Security.SecurityCritical>]
static member RemoveMemoryPressure : int64 -> unit
static member RemoveMemoryPressure : int64 -> unit
Public Shared Sub RemoveMemoryPressure (bytesAllocated As Long)

Параметры

bytesAllocated
Int64

Объем, на который увеличен объем освобожденной неуправляемой памяти.

Атрибуты

Исключения

bytesAllocated меньше или равно 0.

-или-

На 32-разрядном компьютере больше, bytesAllocated чем Int32.MaxValue.

Комментарии

При определении времени планирования сборки мусора среда выполнения учитывает объем выделенной управляемой памяти. Если небольшой управляемый объект выделяет большой объем неуправляемой памяти, среда выполнения учитывает только управляемую память и тем самым недооценивает срочность планирования сборки мусора. Метод AddMemoryPressure информирует среду выполнения о дополнительной нагрузке на системную память, а RemoveMemoryPressure метод сообщает среде выполнения о том, что дополнительное давление было освобождено.

Методы AddMemoryPressure и RemoveMemoryPressure повышают производительность только для типов, которые зависят исключительно от методов завершения для освобождения неуправляемых ресурсов. Нет необходимости использовать эти методы в типах, которые следуют шаблону удаления, где методы завершения используются для очистки неуправляемых ресурсов только в том случае, если потребитель типа забыл вызвать Dispose. Дополнительные сведения о завершении объекта и шаблоне удаления см. в разделе Очистка неуправляемых ресурсов.

В простейшем шаблоне использования управляемый объект выделяет неуправляемую память в конструкторе и освобождает ее в методе Finalize . AddMemoryPressure Вызовите метод после выделения неуправляемой памяти и вызовите RemoveMemoryPressure метод после освобождения.

В более сложных сценариях, где выделение неуправляемой памяти существенно изменяется в течение времени существования управляемого объекта, можно вызвать AddMemoryPressure методы и RemoveMemoryPressure для передачи этих добавочных изменений в среду выполнения.

Внимание!

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

Применяется к