Delphi IDE中的大内存感知测试

Delphi IDE中的大内存感知测试,delphi,delphi-10-seattle,Delphi,Delphi 10 Seattle,从历史上看,我们遇到过RAD studio内存不足的问题,XE10西雅图不再出现这种情况。我们有很多自己的组件,这些组件从未经过大内存感知测试,当内置到我们的应用程序中时也不需要它,但我们最近遇到了一个IDE故障,原因是一个组件的设计时实例在2Gb以上的地址被实例化(我们已修复) 我有一种感觉,我在某个地方读到,Embarcadero有一种测试RAD Studio(命令行选项??)的方法,以获得更高的内存兼容性,但在任何地方都找不到引用。有人知道如何在IDE中强制分配更高的内存位置来验证我们的组

从历史上看,我们遇到过RAD studio内存不足的问题,XE10西雅图不再出现这种情况。我们有很多自己的组件,这些组件从未经过大内存感知测试,当内置到我们的应用程序中时也不需要它,但我们最近遇到了一个IDE故障,原因是一个组件的设计时实例在2Gb以上的地址被实例化(我们已修复)

我有一种感觉,我在某个地方读到,Embarcadero有一种测试RAD Studio(命令行选项??)的方法,以获得更高的内存兼容性,但在任何地方都找不到引用。有人知道如何在IDE中强制分配更高的内存位置来验证我们的组件集的设计时行为,或者知道在应用程序中进行测试的另一种方法,即编写一些只会窃取所有较低内存的东西


我在FastMM中尝试了“从顶部分配”选项,但这只是从2Gb开始向下分配,即使可执行文件被设置为更高的内存使用量。

最有效的测试方法是强制系统从顶部向下分配内存。这里描述了如何实现这一点:

要强制分配从较高地址分配到较低地址,以便进行测试,请在调用VirtualAlloc时指定MEM_TOP_DOWN,或将以下注册表值设置为0x100000:

HKEY\U LOCAL\U MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\AllocationPreference

更改注册表设置后,需要重新启动计算机

当您这样做时,如果您的机器变得不稳定,请不要感到惊讶。许多反恶意软件产品无法在系统范围内自上而下的内存分配下运行。在执行自上而下的分配测试时,您可能会发现有必要暂时禁用反恶意软件。

-“.FastMM,但这只是从2Gb开始分配…”当启用定义时,当调用
VirtualAlloc
时,FastMM所做的就是使用
MEM\u TOP\u DOWN
标志。这是自顶向下内存分配的官方方式。