Export (0) Print
Expand All

GC.RemoveMemoryPressure Method

Informs the runtime that unmanaged memory has been released and no longer needs to be taken into account when scheduling garbage collection.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static void RemoveMemoryPressure(
	long bytesAllocated
)

Parameters

bytesAllocated
Type: System.Int64
The amount of unmanaged memory that has been released.

ExceptionCondition
ArgumentOutOfRangeException

bytesAllocated is less than or equal to 0.

-or-

On a 32-bit computer, bytesAllocated is larger than Int32.MaxValue.

In determining when to schedule garbage collection, the runtime takes into account how much managed memory is allocated. If a small managed object allocates a large amount of unmanaged memory, the runtime takes into account only the managed memory, and thus underestimates the urgency of scheduling garbage collection. The AddMemoryPressure method informs the runtime of this additional pressure on system memory, and the RemoveMemoryPressure method informs the runtime that the additional pressure has been released.

In the simplest usage pattern, a managed object allocates unmanaged memory in the constructor and releases it in the Dispose or Finalize method. Call the AddMemoryPressure method after allocating the unmanaged memory, and call the RemoveMemoryPressure method after releasing it.

In more complicated scenarios, where the unmanaged memory allocation changes substantially during the lifetime of the managed object, you can call the AddMemoryPressure and RemoveMemoryPressure methods to communicate these incremental changes to the runtime.

Caution noteCaution

You must ensure that you remove exactly the amount of pressure you add. Failing to do so can adversely affect the performance of the system in applications that run for long periods of time.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

  • SecurityPermission 

    for the ability to call unmanaged code when manipulating garbage-collection priority. Associated enumeration: UnmanagedCode

  • SecurityCriticalAttribute 

    requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

ADD
Show:
© 2014 Microsoft