如何在内存密集型应用程序中使用配置文件内存?

时间:2016-02-24 17:46:33

标签: windows memory profiling heap

我试图让应用程序的内存效率更高,为了做到这一点,我需要了解它当前的内存使用情况。所以我有一个小的控制台程序,我在这个过程的各个步骤暂停,所以我可以用各种工具分析它的内存使用情况。这是一个使用标准STL分配器和容器(unique_ptr,vector,map等)的C ++程序。

不幸的是,我显然遇到了Windows堆管理器如何工作的问题。我的理解是随着堆使用量的增加,它会从操作系统中提交更多内存。但是随着堆使用量的减少,它不会解除对内存的影响。请参阅this answerthis comment

最终我可以通过在windbg中使用!heap扩展来检查我的程序实际使用了多少堆,但是这有点单调乏味而且能够很好使用比过程浏览器或性能监视器更容易的东西。此外,当人们打开任务管理员并看到这种误导性信息时,我会收到投诉。

所以我想我的问题是A)有没有一种方法可以在不退出进程的情况下实际解除堆内存,或者失败,B)是否有可以用来避免这种情况的策略? (自定义分配器?)

0 个答案:

没有答案