Memory 内存碎片@boost::asio?

Memory 内存碎片@boost::asio?,memory,boost-asio,fragmentation,Memory,Boost Asio,Fragmentation,我几乎被一个我从未得到答案的问题所困扰,这个问题解决了一个极其重要的问题;在boost::asio 在文档中也没有找到任何东西 boost::asio上的异步函数,例如async_write()&async_read_some()总是分配一些东西。(在我的例子中,在VC9调试构建中,分别是144和96字节) 我怎么知道的? 我将客户端连接到此库提供的“echo服务器”示例。 我在“运算符新(大小)”代码的“new.cpp”处放置了一个断点。 然后我发送“123”。断点被击中 现在使用堆栈跟踪,我

我几乎被一个我从未得到答案的问题所困扰,这个问题解决了一个极其重要的问题;在boost::asio

在文档中也没有找到任何东西

boost::asio上的异步函数,例如async_write()&async_read_some()总是分配一些东西。(在我的例子中,在VC9调试构建中,分别是144和96字节)

我怎么知道的?
我将客户端连接到此库提供的“echo服务器”示例。
我在“运算符新(大小)”代码的“new.cpp”处放置了一个断点。
然后我发送“123”。断点被击中
现在使用堆栈跟踪,我可以清楚地看到“new”调用的根来自于我在函数处理程序中进行的async_write()&async_read_some()调用

所以内存碎片迟早会出现,所以我不能使用ASIO,我希望我可以

我想指出的是,我理解异步操作至少需要IOCP,在操作期间使用分配的结构,直到完成(调用处理程序时)。
例如,对于IOCP,每个操作(读/写)都必须有一个重叠的结构。
我怀疑这就是我拥有上述少量分配的原因,这让我担心内存碎片。
那么我该如何汇集这些结构呢?当然,平台独立


有什么想法吗?有没有有用的代码示例?我相信你们中的一些人已经解决了这个问题。

听起来您需要使用asio自定义内存分配功能,您阅读了吗?还有一个相当简单的问题。

我读过医生,但对我来说有点复杂。我想我还不够努力,这正是我即将要做的。谢谢你的友好回复!