Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

The "HeapDecommitFreeBlockThreshold" registry key


View products that this article applies to.

Summary

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 HeapDeCommitFreeBlockThreshold = REG_DWORD 0x00040000
On computers that have less than one gigabyte of RAM, do not use the HeapDecommitFreeBlockThreshold registry key unless intense memory fragmentation is occurring.

↑ Back to the top


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.

↑ Back to the top


Keywords: KB315407, kbhowto

↑ Back to the top

Article Info
Article ID : 315407
Revision : 10
Created on : 10/25/2007
Published on : 10/25/2007
Exists online : False
Views : 1655