开一个讨论帖,关于网络编程中的内存管理 网络编程中,在接收和发送数据时,需要频繁分配内存。网络编程在服务端,通常要求高效率和长时间稳定运行。如果用new/delete分配和回收内存,肯定不能满足要求。大家一起讨论下这块,有经验的同学可以提自己的方案,其他同学也可提自己的意见。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 结帖率:12.50%办法很多,看你的要求,你只说不能频繁NEW/DELETE,太笼统了 开辟比最大包长大两倍的缓冲区,接收满数据处理,然后再接收,而不能new/delete 不知道有没有同学在参考ACE,apache等的内存管理 可以参考一下STL里面的内存分配方式 申请一块大内存,然后自己去管理这块内存的分配,运行中发现不够了,再申请一块大大的内存,再去管理,这样new 和delete的工作你来做,想怎么做就怎么做 这个就是内存池,高性能网络服务器必备一般IOCP是主框架,内存池是必要处理手段 尽量复用内存,而不是频繁new/delete。如果不得不这样设计,可考虑内存池。new/delete在管理小块内存时效率极差,此时可以考虑自己实现分配器,或者用第三方库,如loki的小对象内存分配器。 使用内存池避免重复的new/delete 登录后怎样设置监听和数据接收线程函数? 关于Static控件的简单问题 哪里有tlntadmn.exe 的源码 有关逻辑坐标和设备坐标的一段代码,请解释! 关于通讯问题,帮帮忙 如何使用接口函数Navigate2实现POST方式传数据? 软件测试的主要方法有哪些啊? win7中,vc编译环境下,如何获得字体大小设置 kevin_qing,jiangsheng帮我看看这篇帖子 vc6 MFC dll设置UNICODE字符集导致error LNK1112:机器类型冲突 向编辑框写字符串时,如何使编辑框自动上移当前字符?? 网络数据库访问速度
一般IOCP是主框架,内存池是必要处理手段
如果不得不这样设计,可考虑内存池。
new/delete在管理小块内存时效率极差,此时可以考虑自己实现分配器,或者用第三方库,如loki的小对象内存分配器。