2024年4月21日发(作者:)
第7章
Delphi的内存管理器
最小化内核中并不包含内存管理器,这表明使用最小化内核开发应用程序,与使
用汇编一样“原始”:需要使用标准的Win32 API来分配、使用和管理内存块。但是这
通常会存在效率问题,也可能会导致内存漏洞。
如果代码中使用到需要动态内存的数据类型,那么这些数据类型的内部例程将访
问Delphi的内存管理器。这些数据类型中就包括了AnsiString。这意味着绝大多数
的Delphi程序都需要内存管理器。
除了缺省的内存管理器外,Delphi还实现了和相应的内存管理模
块,以同步DLL与HOST程序中的内存管理器。
与缺省的内存管理器一样,共享内存管理器()并不是最有效率的。因
此某些时候,选择第三方的内存管理器可能会得到更好的性能。
开发人员随时可以写一个内存管理器来嘲笑一下那个叫的东西。但
在开始动手之前,请确认你已理解本章所述的全部细节,否则你可能不得不面对一次
次的进程崩溃,并无可奈何地在uses关键字的后面加入ShareMem。
知己知彼,才能无往不利。否则,笑到最后的还会是Borland。
7.1 Delphi的内存管理器实现框架
Delphi在中实现了自己的内存管理器。对于应用程序模块来说,除了变量、
常量和系统内存的数据结构之外,其他任何时候的内存分配行为,只可能是如下三种情况之一:


发布评论