我一直在调试内存泄漏,在我的程序中,并缩小到WinHttp的通信。我已经能够复制下面的测试代码的问题:WinHttp打开内存泄漏
#include <windows.h>
#include "winhttp.h"
void main() {
while (1) {
HINTERNET send_session = WinHttpOpen(L"asdf", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
WinHttpCloseHandle(send_session);
}
}
运行这几秒钟后,程序已在使用超过20MB内存。它为什么这样做? The API指出,在不再需要句柄之后,您需要调用WinHttpCloseHandle - 我正在这样做。
我使用Arch Linux的mingw32的编制,并在Windows 7
20 MB?你如何衡量? –
运行任务管理器并查看进程内存使用情况。 – seanneko
它没有显示任何足够准确的内容来告诉内存泄漏。请参阅http://stackoverflow.com/questions/1984186/what-is-private-bytes-virtual-bytes-working-set –