Lockless Inc

Installation of Memory Allocator

Choose an Operating System:

Which download is best for me?

There are several types of downloadable library here.  You firstly should choose a version appropriate to the operating system you have.  Secondly, you must make a choice between the static and dynamic versions of the library.

The dynamic library is linked into your programs at run-time.  This version may not be redistributed, so is not appropriate for developers intending to sell programs linked to the Lockless memory allocator.  The dynamic library is intended for in-house use within businesses to gain competative advantage, or for personal use to optimize the performance of your computer system.

The static library is linked into your programs at compile time.  This version, in effect, becomes part of your program binary after a compile.  In doing so, it is slightly more efficient than the dynamic version.  You may redistribute software compiled with the static library provided that you pay the quarterly fee indexed to the retail price of your software.  This version is intended for developer use.

Note that before obtaining a static library (developer) license, you may want to test out the performance improvements with the cheaper dynamic library.  This will provide the information to you about whether or not the improved memory allocation algorithms help your software, and by how much.  It may well be that the performance bottlenecks lie elsewhere.  An informed decision will allow you to quantify the benefits and compare the solution to other options like upgrading your cpu or changing to a different compiler.


Linux typically is installed with a single C run-time library that nearly all programs on a system use.  On Windows, however, each program and library may use seperate C run times.  This provides a problem for memory allocation.  A block of memory allocated with one allocator and freed in another will likely cause the program to crash.  This means that DLL's need to have their API designed to handle this limitation.

To simplify the possibilities, the windows version of the Lockless memory allocator is designed so that the dynamically linked library requires a dynamic link to the CRT, and the statically linked library requires a statically linked CRT.  This makes sure all that allocator references in your program (including those within the CRT itself) are hooked.  Note that the CRT will free some internal data structures on program exit.  If the wrong version of free() is called, then a crash may result.

The static version of the windows library should work with most recent versions of Visual Studio.  The dynamic version is different.  Since it requires hooking internal CRT functions at runtime, the internal library startup is less predictable.  Currently, we only guarantee that Visual Studio 2008 will work with this configuration.

About Us Returns Policy Privacy Policy Send us Feedback
Company Info | Product Index | Category Index | Help | Terms of Use
Copyright © Lockless Inc All Rights Reserved.