【发布时间】:2011-01-14 19:47:45
【问题描述】:
我有一个多线程应用程序,我在其中分配数据缓冲区,然后在队列中等待通过套接字发送。所有缓冲区都是可重现的,因为我在整个程序中仅使用固定大小的缓冲区(1024、2048、2080 和 5248 字节)。我注意到,我的程序通常同时使用最多 10 个每种长度类型的缓冲区。
到目前为止,我总是手动分配新缓冲区,然后在不再需要它的地方释放它(使用 malloc() 和 free())。我开始怀疑Linux是否足够聪明地为我缓存这些内存,所以下次我分配新的缓冲区系统时只是快速接收我之前已经使用过的缓冲区而不执行分配新内存块的繁重操作?
【问题讨论】: