如何编写一个映射4 GB的内存管理器用于Delphi

lex*_*ean 4 delphi

我有一个使用超过2千兆字节的虚拟内存的对象但Delphi只管理2 GB我正在考虑以太多制作一些对象并将它们分组并使用windows wow64方法一些如何使用64位窗口.或者只是将内存管理器升级到4 GB并围绕Int64构建它.实际上,我需要使用TStream作为使用Int64的基础对象,而不是整数.

Cos*_*und 14

Lexdean,你说的是:

实际上,我需要使用TStream作为使用Int64的基础对象,而不是整数

那么,你很幸运(两次),因为:

  1. Delphi的TStream使用Int64作为位置,它可以访问比4Gb大得多的文件.
  2. 如果TStream接口足够,您可以编写自己的TStream来做任何你想做的事情,你不需要等待原生64位Delphi编译器.

但如果我要回答标题中的问题:

如何编写一个为Delphi映射4 giggs的内存管理器

使用32位编译器无法做到这一点.加入一群人要求64位Delphi编译器!


Guf*_*ffa 5

拥有一个2千兆字节的对象并不是一个好主意.如果内存碎片化,即使可用内存量足够,也无法分配内存.我建议你尝试使用一个较小的对象列表.

(我记得在Turbo Pascal(Delphi的前身)中一个变量不能大于64千字节......哦,时代......;)