好的,所以我有一個非常大的多線程非託管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