VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 334|回复: 3

[求助] CList的不断插入与移除,造成内存不断增加 重新仔细描述

[复制链接]
50_avatar_middle
在线会员 wxliang 发表于 2018-9-23 11:49:47 | 显示全部楼层 |阅读模式
3驿站币
CList的不断插入与移除,造成内存不断增加

内存增加虽然很缓慢,但是长时间肯定会占满内存

之前说的确实不清楚,我重新在仔细描述一下

用于IOCP
  1. struct CTBufferObj
  2. {
  3. public:
  4.         WSAOVERLAPPED                ov;
  5.         SOCKET m_client;//客户端连接的SOCKET
  6.         EnSocketOperation operation;
  7.         //WSABUF                                buff;
  8.         char data[BUFFER_SIZE];
  9.         int len;
  10. };

  11. CTBufferObj* pOverlapped=nullptr;
  12. CTBufferObj* uerinfo=(CTBufferObj*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(sizeof(CTBufferObj)));
  13. 我会事先分配1万,进行环形调用 ,在程序结束后,才会进行内存释放(当然,用时,我会移出,回收时,我在插入)
复制代码


求问题解决:
1:当IOCP接收到数据时,我会把CTBufferObj*,AddTail插入CList中,然后有单独的处理线程从CList取出来进行处理,采用的是:RemoveHead()

整系统中,一共有两处进行不断的插入与移除,一个是重叠,一个是接收的数据,之前一直没注意,突然看了一下内存,就发现这个问题,程序中内存分配,在最开始就进行分配到一定额度的,也调试过,没有达到使用额度而追加分配额度,所以,我果然定然,是CList的不断插入与移除造成的内存增大

个人无法解决这个问题,求驿站的大佬们,为我解决这个问题,感激不尽呀





上一篇:CList的不断插入与移除,造成内存不断增加
下一篇:关于网络编程这方面问题

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

75_avatar_middle
在线会员 coldBro 发表于 2018-9-23 22:54:40 | 显示全部楼层
感觉你的问题就是出现在RemoveHead那里。
我感觉应该是这样
CTBufferObj*pDelete = mylist.gethead();
headfree(pDelete...);
mylist.RemoveHead();

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

51_avatar_middle
online_admins Syc 发表于 2018-9-23 22:56:57 | 显示全部楼层
其实这个应该是涉及到控件内部对于数据方面的速度优化了,系统内部可能会做一些缓存之类的,这样下载再进行插入的时候速度会更快,所以这块貌似我们控制不了,楼主出现过因为频繁的插入或者删除listctrl中的数据导致的内存增大到程序崩溃的现象吗?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

50_avatar_middle
ico_lz  楼主| wxliang 发表于 2018-9-24 09:50:04 | 显示全部楼层
Syc 发表于 2018-9-23 22:56
其实这个应该是涉及到控件内部对于数据方面的速度优化了,系统内部可能会做一些缓存之类的,这样下载再进行 ...

现在还没到崩溃,但是这个内存一直上涨,预计几个星期就能满吧

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-12-15 04:49

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表