This article describes the HeapDecommitFreeBlockThreshold
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.
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:
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.
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:
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
- Start Registry Editor (Regedt32.exe).
- Locate and click the following key in the registry:
- On the Edit menu, click Add Value, and then add the following registry value:
Value name: HeapDecommitFreeBlockThreshold
Data type: REG_DWORD
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.
- Quit Registry Editor.
- Restart your computer.