官术网_书友最值得收藏!

ScaleMM

First such memory manager is ScaleMM. It is the work of André Mussche and can be downloaded from https://github.com/andremussche/scalemm. You can use it in practically any application, as it is released under a tri-license MPL 1.1/GPL 2.0/LGPL 2.1. It only supports the Windows platform.

ScaleMM is written in Delphi and assembler. To use ScaleMM, you just have to download it, store it somewhere on the disk and add the ScaleMM2 unit as a first unit in the program.

ScaleMM was created as a faster replacement for FastMM. It is not as loaded with debugging features as FastMM but implements just a base memory manager functionality. Because of that, it makes sense to run FastMM while debugging, and ScaleMM while testing and in production.

The older version of Delphi didn't like it if you put the {$IFDEF} directive inside the main program's uses list. Delphi will remove this directive when you add a new form to the program. The easiest way to fix this is to create a new unit and add it as a first unit in the main program's uses list. In this new unit, you can then put {$IFDEF} in the used memory manager however you wish.

An example of the uses list in such a main program is shown here:

program ParallelAllocation;

uses
ParallelAllocationMM,
Vcl.Forms,
ParallelAllocationMain in 'ParallelAllocationMain.pas' {frmParallelAllocation};

Unit ParallelAllocationMM can then be implemented as shown here:

unit ParallelAllocationMM;

interface

uses
{$IFDEF DEBUG}
FastMM4 in 'FastMM\FastMM4.pas';
{$ELSE}
ScaleMM2 in 'ScaleMM\ScaleMM2.pas';
{$ENDIF}

implementation

end.

Replacing FastMM with ScaleMM in the test program, ParallelAllocation shows a noticeable improvement. With FastMM and {$DEFINE UseReleaseStack}, the parallel version is at best 6.3x faster than the serial one. With ScaleMM it is up to 6.7x faster:

主站蜘蛛池模板: 河南省| 定州市| 舒兰市| 清涧县| 吉木萨尔县| 资中县| 青冈县| 台东市| 太湖县| 博湖县| 柳江县| 清涧县| 永年县| 平阴县| 堆龙德庆县| 溧阳市| 南通市| 通城县| 新源县| 斗六市| 鹿泉市| 岱山县| 阳谷县| 安陆市| 若羌县| 水城县| 黎平县| 阳信县| 蒙阴县| 萍乡市| 许昌市| 阿拉善左旗| 富裕县| 泊头市| 秦安县| 汉寿县| 庐江县| 松滋市| 万载县| 丰县| 普安县|