IDE 中的大内存感知测试

Large memory aware testing in the IDE

过去我们曾遇到过 RAD studio 运行 内存不足的问题,这在 XE10 Seattle 中不再发生。我们有很多自己的组件,这些组件从未针对大内存感知进行过测试,并且在构建到我们的应用程序中时不需要它,但是由于组件的设计时实例被实例化,我们最近遇到了 IDE 错误在 2Gb 以上的地址(我们已经修复)。

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

我已经在 FastMM 中尝试了 "allocate from the top" 选项,但是这只是从 2Gb 开始分配,即使可执行文件设置为使用更高的内存也是如此。

最有效的测试方法是强制系统自上而下分配内存。此处描述了如何完成此操作:https://msdn.microsoft.com/en-us/library/bb613473.aspx

To force allocations to allocate from higher addresses before lower addresses for testing purposes, specify MEM_TOP_DOWN when calling VirtualAlloc or set the following registry value to 0x100000:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\AllocationPreference

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

如果您的机器在执行此操作时变得不稳定,请不要感到惊讶。许多 anti-malware 产品无法在 system-wide 自上而下的内存分配下运行。在执行自上而下的分配测试时,您可能会发现有必要暂时禁用 anti-malware。