Browser width is too narrow.

Rotate the screen or increase the width.

Simply Memory Manager

The Simply Memory Manager (SMM) is a replacement for the native memory manager for Free Pascal and Lazarus projects on Windows.

The Simply Memory Manager 2.2 has been released. The release contains performance improvements and minor fixes.

Free download Simply Memory Manager. When download failed, please report.

Why SMM?

Simulation modeling of large and complex systems (and not only simulation) requires multiple reuse of the maximum amount of available memory.

Free Pascal's memory manager uses certain Windows functions for memory allocation and freeing, which cause fatal errors when large amount of memory is reusing multiple times. In addition, it runs in this case rather slow.

SMM vs native

The SMM prevents such errors by using a different approach, and it is much faster on avalanche-like memory allocation requests.

In some cases, the SMM may be a bit slower than the native memory manager. This is due to the fact that when using Lazarus IDE, some memory blocks were already allocated, even when the SMM was the first unit in the "uses" statement. Therefore, the SMM must also recognize and process requests to free and reallocate memory blocks already allocated by the native memory manager. This additional processing can reduce performance somewhat. The slowdown might probably be noticeable in some cases in the GUI due to the constant redrawing of graphical controls that use memory reallocation.

Feel free to ask a question or report an issue.


  • The SMM prevents the "out of memory" error when cyclically allocating and freeing large amounts of memory.
  • It is faster on avalanche-like memory allocation requests.
  • The SMM demonstrates enough good performance both for single- and multi-thread tasks.
  • The SMM has a "reserved memory" feature to prevent real "out of memory" case.

How to use

Place the SimplySMM unit the first in the "uses" statement.


SMM and memory leaks tracing

Do not use the SMM when heap trace manager (HeapTrc) is active. In such cases, exclude the SimplySMM unit from the "uses" statement.

  // SimplyMM,