back to main page

LeapHeap User Guide

LeapHeap is an operating system enhancement for Microsoft Windows NT, 2000, XP etc. running on Intel Pentium processors.

LeapHeap is a product of Necklace Ltd., registered office 140 Faversham Weymouth, England, incorporated in England and Wales number 3638819. This user guide is copyright Necklace Ltd. 2004.

Possession and use of LeapHeap is subject to a licence agreement. You must assent to the terms of the licence before you install LeapHeap. LeapHeap files may not be distributed to third parties; they may only be obtained by download from the LeapHeap website at www.leapheap.com.

'Windows NT', 'Windows 2000' and 'Windows XP' are registered trademarks of Microsoft Corporation. Necklace Ltd. is not affiliated to Microsoft Corporation. Microsoft Corporation has not endorsed the use of LeapHeap. All other company and product names appearing in this guide may be trademarks of their respective companies.

LeapHeap improves the performance of certain compute- and memory-intensive applications, particularly multithreaded server applications. LeapHeap is unlikely to improve the performance of games or other graphic-intensive programs.

This version of the guide is for use with Leapheap version 1.4. Previous versions may be obtained by downloading an earlier version of LeapHeap from the website.

If you have downloaded LeapHeap and wish to install it immediately, go to section 7 Installing LeapHeap. Otherwise browse the other sections of this manual, listed below.

If you wish to print this user guide in its entirety, that is easier from the monolithic version that comes with the LeapHeap download.


1 The Program and the Heap
1.1 Classical Organisation
1.2 NT Heap Organisation
1.2.1 Private Heaps and Contention
1.2.2 Private Heaps and Locality
1.2.3 Programming Constraints
1.3 LeapHeap Organisation
1.3.1 Memory States
1.3.2 The Gigabyte Heap
2 LeapHeap Data Structures
2.1 Compartment Area Data Structure
2.2 Big-Block Area Data Structure
3 LeapHeap Algorithms
3.1 Bitmap Algorithm
3.2 List Algorithm
3.2.1 Block Fit
3.2.2 Block Split
3.2.3 Block Append
3.2.4 Block Coalesce
3.2.5 Constraints and Invariants
3.2.6 Coping With Concurrency
3.2.7 Concurrency Example
4 The LeapHeap Implementation
4.1 Compartment Area Implementation
4.2 Big Block Area Implementation
4.3 Overflow
4.4 The Relict Heap
4.5 Exception Handling
4.6 Heap Identifier Tagging
4.7 API Conformance
5 Performance
5.1 Intrinsic Efficiency
5.2 Memory Efficiency
5.3 Locality
5.4 Contention
5.5 Case Study
5.5.1 Intrinsic Performance
5.5.2 Memory Performance
5.5.3 Locality Comparison
5.5.4 Performance Under Contention
6 The Registry Interface
6.1 Keys
6.2 Monitoring
6.3 Tuning
7 Installing LeapHeap
7.1 How InstallLeapheapRegistry Works
7.2 How InstallLeapheapFiles Works
7.3 The Confidence Test
7.4 Running an Application
7.5 Uninstalling LeapHeap
8 Compatibility
8.1 Program Correctness
8.2 Program Performance
9 Configuration Management
10 LeapHeap for Developers