内存泄露
Re内存泄露
我的客户端比较简单,
用MFC开发的一个窗口程序,然后自己用dll封装了一下oss 的c接口库(没有实际的内存分配),窗口程序直接调用dll,
什么操作都不做的话(aos_http_io_initialize()这个都没有调用 ),只要一加载dll,调试程序,结束时,都有内存泄露。
找了好久,找不到原因,vs 的性能测试工具,可以看到oss的c接口里有内存调用,如下所示:
-------------------------
Re内存泄露
还有一个问题,调用接口getobjecttofile后,程序的内存大小没啥变化
调用getobjecttobuffer后,客户端的内存狂涨,没有释放,这个啥原因啊?请指教!!
-------------------------
Re内存泄露
是这样做的,还有是泄露。。。。
-------------------------
Re内存泄露
getObjectToBuffer这个接口中,
aos_list_t buffer;
aos_list_init(&buffer);
s = oss_get_object_to_buffer(options, &bucket, &object, headers, &buffer, &resp_headers);
请问这个双向链表buffer,内存在哪儿释放???
-------------------------
Re内存泄露
我的方案:
获取object的大小,然后按5M一块来分割object至多块,每一块都往消息队列里扔,开多个线程来抢消息队列里的块,然后调用 oss_get_object_to_buffer,总得来说
测试的object大小为1M左右,第一次下载完一整个object,内存多了10M,后面每操作一次,内存都增加1M左右内存。。
测试的object大小为250M左右,第一次下载完一整个object,内存多了40-60M,后面每操作一次,内存都增加1M-6M内存。。
-------------------------
Re内存泄露
我这个程序,后面要实时运行,这样的话,内存迟早会被占满了。
-------------------------
Re内存泄露
我测试了,你们提供的demo,test_get_object_to_buffer()
aos_pool_destroy这个调用后,程序的内存没有下降。
最终调用aos_http_io_deinitialize();这个函数,内存才会降下来,最终程序结束,这个是能否解释一下原因啊???
-------------------------
Re内存泄露
-------------------------
Re内存泄露
我加你了,麻烦你加我一下,
guyuewuhua@163.com,谢谢
赞0
踩0