Closed eework closed 12 months ago
另外还有没有一个可能mSendList这个deque内存空间释放问题,没有管理过程释放?
请问有能复现的测试代码么? 或者给一些关键的代码片段/伪代码。
可以加QQ群:309800774 进行交流。
找到原因了,主要是因为eventloop里面IN事件的接收处理里面的http callback是一种同步方式的处理,我在httpXXXcallback里面去发送文件数据,最终会投递到待发送队列mSendList里面做合并发送,但仅限于发送数据投递,只有在httpXXXcallback处理完成后,才会去调用flush把数据发走。如果这样的话,我在http callback里面如果投递了很多发送数据,内存就会涨起来。
我做了一些修改,加入线程次,把在httpXXXcallback里面把http sesstion投递给线程池去做业务处理,这样httpXXXcallback也能迅速返回去Flush数据出去
好的。(对于直接在网络事件的回调里进行网络操作)这种情况我确实没办法找到内置的好的处理方式。
有什么问题欢迎提交issue。
你好 IronsDu,最近在使用你的大作brynet做http文件传输业务,发现了一个问题,如题,调用HttpSession的send发送数据,内存涨的问题,在tcpConnection.hpp的Flush中,尝试修改:在mSendList.erase(it)之前对其it->data.reset(); 问题依然。 期待你的回复