Icon Replacement Memory Manager

Introduction
DBISAM uses a replacement memory manager for Delphi called FastMM with both the GUI and command-line database servers that ship with all DBISAM products. The FastMM memory manager is designed to be extremely efficient at allocating and de-allocating many small blocks of memory of similar sizes, which is primarily what DBISAM does during most operations. The memory manager is also designed to overcome issues with the default Delphi memory manager that cause it to perform very poorly with multi-threaded applications that run on servers with multiple processors due to its use of a single critical section for all access to the memory pool. This design becomes a major performance bottleneck in such situations.

You can download the FastMM memory manager from SourceForge here:

FastMM

Including the Memory Manager in an Application
In any cases that you wish to include the FastMM replacement memory manager in an application, there are only a couple of steps involved:

1) Open the Delphi project .dpr file.

2) Include the FastMM4 unit that is shipped with FastMM as the first unit in the project's USES clause.

Information It is extremely important that the FastMM4 unit is the very first unit in the USES clause.

The following is an partial excerpt of the dbsrvr.dpr project file that is shipped with DBISAM for the GUI database server. It illustrates how to include the FastMM4 unit in the project's USES clause:

program dbsrvr;

uses

  {$I dbisamvr.inc}

  {$IFDEF MSWINDOWS}
  FastMM4,
  {$ENDIF}

  SysUtils,

Compatibility Issues
The FastMM replacement memory manager is for use only with Delphi and is not intended for use with C++.
Image