我有一个 C++ 项目,它有一个非常递归的函数。该项目在专用机器上部署和运行时消耗高达 12 GB 的内存。以前,此过程曾经在 2GB 限制下失败。因此,我在 Visual Studio 2010 平台上将具有 20 个项目的整个解决方案转换为 64 位平台。现在,它并没有停止在 2 GB,而是几乎耗尽了我的整个 RAM。总 RAM 使用量为 15.9 GB,总内存为 16 GB。我正在使用 COM+ 将这些应用程序作为 dllhost 运行。我的问题是:
- 如何限制完全分配的内存导致进程失败?
- 递归结束后windows会释放内存吗?因为在我杀死这个进程之前,我没有看到这个进程释放内存。
- 我想,终止案例不是问题,因为我的工作是通过在组件服务的回收中使用到期时间选项成功完成的。或者还有其他问题吗?