The "HeapDecommitFreeBlockThreshold" registry key


This article describes the HeapDecommitFreeBlockThreshold registry key.

When memory is freed at a given address, the heap manager checks how many contiguous bytes are free around that address. After that check is complete, the heap manager can do one of two things:
  • Keep the contiguous memory block committed.
  • Decommit the contiguous memory block and mark it as reserved only.
The HeapDecommitFreeBlockThreshold registry key specifies the number of contiguous bytes above which the memory is decomitted (the second option) rather than retained for reuse (the first option).

Note On computers that have one gigabyte or more of RAM, apply the following setting for maximum performance:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

Value Name: HeapDecommitFreeBlockThreshold

Value Type: REG_DWORD

Value Data: 40000 (hex)

On computers that have less than one gigabyte of RAM, do not use the HeapDecommitFreeBlockThreshold registry key unless intense memory fragmentation is occurring.

More Information

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows

By default, the heap manager does not necessarily combine all free blocks or make new allocations; therefore, blocks may be de-committed and become useless holes in the virtual address space. The HeapDecommitFreeBlockThreshold registry key provides better control of how the memory is handled as it is freed. To add this key, you need to edit the registry.

To add the HeapDecommitFreeBlockThreshold registry key:

  1. Start Registry Editor (Regedt32.exe).
  2. Locate and click the following key in the registry:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  3. On the Edit menu, click Add Value, and then add the following registry value:

    Value name: HeapDecommitFreeBlockThreshold
    Data type: REG_DWORD
    Radix: Decimal
    Value Data: The number of bytes

    This value specifies the number of freed bytes above which the heap manager decommits the memory (instead of retaining and reusing the memory). If you set this registry key to a high value (for example, 262144), the heap manager is more effective when making sure that no bytes are decommitted. Therefore, virtual address fragmentation is lessened or even avoided.

    Note This value is the number of bytes in decimal. The recommended value is 262144 which corresponds with a hex value of 0x00040000.
  4. Quit Registry Editor.
  5. Restart your computer.

Article ID: 315407 - Last Review: Jan 7, 2017 - Revision: 1

Microsoft Exchange 2000 Server Standard Edition, Microsoft Exchange 2000 Enterprise Server, Microsoft Exchange Server 2003 Enterprise Edition, Microsoft Exchange Server 2003 Standard Edition