有一个COM服务器,EXE的,在一个形如 [out, retval]HRESULT AllocBuffer(BSTR* buffer)的函数里调用
*buffer = (BSTR)CoTaskMemAlloc(1024 * 1024),
在客户程序上多次调用这个函数,但是并不释放内存,然后观察任务管理器,发现服务器和客户程序的内存占用都未增加,
但是提交更改的内存每次都增加1M,然后杀死服务进程时,提交更改的内存一下子下去了,也就是说,这些内存其实在服务器的堆上?
那为何不见服务器进程的内存占用上涨?
*buffer = (BSTR)CoTaskMemAlloc(1024 * 1024),
在客户程序上多次调用这个函数,但是并不释放内存,然后观察任务管理器,发现服务器和客户程序的内存占用都未增加,
但是提交更改的内存每次都增加1M,然后杀死服务进程时,提交更改的内存一下子下去了,也就是说,这些内存其实在服务器的堆上?
那为何不见服务器进程的内存占用上涨?
我只是想知道服务程序 CoTaskMemAlloc的内存是什么样的一块内存,应该在哪存放,为了让这块内存占用实际的页,我写了这块内存。