我在一个需要大量内存的32位最终用户应用程序上工作。高达几千兆字节。我最近改变了我们的内部内存分配策略,以使用受this Raymond Chen article.启发的内存映射文件 - 无文件。它运行良好。
唯一的缺点是:如果我以这种方式分配一千兆字节的内存,它就不会出现在性能计数器的任何地方。当然,我知道分配了多少,以及它有多少被映射到我的地址空间,但我不知道它是如何划分为物理内存和页面文件的。我想知道,如果没有任何其他原因,而不是记录它进行调试。
答案 0 :(得分:1)
解决方案是使用sysinternals' VMMap监控我的应用程序。这会按分配类型(我的内存映射文件称为“共享”)以及状态(在内存中或换出)中分解应用程序内存使用情况。
甚至还有一个图形内存碎片图!
答案 1 :(得分:0)
调用QueryWorkingSet并计算映射范围内的页数,以确定您的内存占工作集的一部分。但请记住,页面可以从工作集中排除,但仍然存在于物理内存中。