Coming soon, support for DCOM

In the Necklace laboratories, a version of LeapHeap is being prepared that works with Dllhost.exe. This executable hosts in-process servers invoked across the network as part of Microsoft's Distributed Component Object Model (DCOM). Dllhost is notoriously heap-bound. The current version of LeapHeap cannot be used because it is only possible to run Dllhost.exe from the Windows system directory.


LeapHeap replaces the Windows NT native heap manager transparently

The heap manager is the software component that allocates and frees memory blocks as requested by the application. The heap manager is called into play for example:
When a C++ object is created.
When the 'C' run-time library routine malloc() is used.
When a Visual Basic collection is added to.
Heap access is often the limiting factor in the performance of NT applications, particularly server applications.

LeapHeap is a re-implementation of the underlying Windows NT (including Windows 2000 and XP) heap routines for computers with Intel Pentium processors. After you install LeapHeap for an application, that application automatically uses the faster LeapHeap calls.


LeapHeap enhances the performance of existing applications

Unlike developer tools, which have to be compiled or linked with application code by the originator of the application, LeapHeap is an end-user tool.

LeapHeap works with standard commercial applications for which you do not have the source code. After you install LeapHeap, the application dynamically links to the LeapHeap DLL file when it is started up. Any heap calls the application makes will then be vectored to LeapHeap. The code of the application is not altered in any way.


Threads do not lock, block or spin

A program thread accessing the NT native heap must in many cases gain exclusive access to the heap by acquiring a lock. A thread that needs the lock but finds it already taken by another thread must yield the processor, blocking the thread and forcing a time-consuming context switch. On multi-processor machines a thread may instead elect to spin on the lock until it is released, during which time the processor running the thread is wasted.

LeapHeap uses a parallel algorithm. Any number of threads can be accessing the heap concurrently. In the event of a conflict between threads, the loser is able to complete its routine without blocking or spinning.


LeapHeap memory overhead is just two bits per allocation

LeapHeap uses a bitmap algorithm to keep track of memory allocations. The average requirement is between one and two bits per allocation. This bookkeeping data is stored in a memory area separate from the heap proper.

LeapHeap segregates allocations of different sizes into different areas of the heap, a strategy that promotes locality of reference, a key performance driver.


LeapHeap is easy to install and uninstall.

The LeapHeap installer does not overwrite any system files. It does not pollute your registry with COM interfaces, nor your desktop with icons, nor your start menu with new options. LeapHeap files are confined to a single directory, and registry changes to a single key. The behaviour of your system is not modified when you install LeapHeap. You subsequently set any application you choose to run with LeapHeap, in most cases simply by copying the executable into a special directory. System requirements are Windows NT, 2000 or XP running on Intel Pentium processors with 65 MB of spare disc space.

To uninstall, you restore one system registry key to its original state (automated), delete the directory that holds the LeapHeap files, and remove the LeapHeap root key from the user area of the registry. That's it.