好的,所以我有一个非常大的多线程非托管C++应用程序(服务器)在Windows 2003服务器上运行。它为20-50个并发用户提供会话,执行各种业务逻辑......有时,由于用户在客户端中打开大量窗口,因此可能会使用大量内存,例如对象/会话缓存(每个窗口都有一个单独的服务器会话)非托管的VC++应用程序在Windows服务器上的内存消耗
我们经常看到消耗超过5-600 MB的物理内存和5-600 MB的虚拟内存。一旦达到这一点,我们似乎开始'出的内存'错误
现在我知道Windows会在感觉到需要释放物理内存时启动页面错误,并且win32应用程序通常只能分配高达4GB的内存,实际上只有2GB可用于'user-m'应用程序的实际使用ode'的地址空间,甚至更少的后其他库加载后...我不确定'用户模式'的内存使用情况是什么在任务管理器上报告...
因此无论如何我的真正的问题是:
如何找出我的应用程序有多少用户模式内存以及在任何给定时间使用了多少(最好来自应用程序之外,即某些窗口管理工具)?
查看Process Explorer和网站后,它看起来像'虚拟大小'值是应用程序有权访问多少内存的值。
啊,我忘了补充,我们有2 GB内存的服务器,这在VMware虚拟机托管之一。 – uzbones 2009-02-26 02:43:48