C++中placement new与内存池结合使用时,如何实现高效长尾词管理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计741个文字,预计阅读时间需要3分钟。
参考:https://blog.csdn.net/Kiritow/article/details/51314612
有时我们需要长时间运行的程序(例如监听程序、服务器程序等),对于这类7*24小时运行的程序,我们不应使用标准库提供的new和delete。
参考:blog.csdn.net/Kiritow/article/details/51314612
有些时候我们需要能够长时间运行的程序(例如监听程序,服务器程序)对于这些7*24运行的程序,我们不应该使用标准库提供的new 和 delete (malloc和free也算)。这是因为随着程序的运行,内存不断的被申请和被释放,频繁的申请和释放将会引发内存碎片、内存不足等问题,影响程序的正常运行。更多的时候核心程序不允许内存申请失败,更不允许异常的出现,因此必须保证每次内存申请都是成功的(一般都是内核程序,当然不希望被中断的后台程序也是如此)。在这种极端要求下,内存池的好处就大大的凸现出来了。
在C++中,可以通过placement new 来实现内存池。当然boost也有实现的内存池成品(boost::pool),这里不做过多解释。
本文共计741个文字,预计阅读时间需要3分钟。
参考:https://blog.csdn.net/Kiritow/article/details/51314612
有时我们需要长时间运行的程序(例如监听程序、服务器程序等),对于这类7*24小时运行的程序,我们不应使用标准库提供的new和delete。
参考:blog.csdn.net/Kiritow/article/details/51314612
有些时候我们需要能够长时间运行的程序(例如监听程序,服务器程序)对于这些7*24运行的程序,我们不应该使用标准库提供的new 和 delete (malloc和free也算)。这是因为随着程序的运行,内存不断的被申请和被释放,频繁的申请和释放将会引发内存碎片、内存不足等问题,影响程序的正常运行。更多的时候核心程序不允许内存申请失败,更不允许异常的出现,因此必须保证每次内存申请都是成功的(一般都是内核程序,当然不希望被中断的后台程序也是如此)。在这种极端要求下,内存池的好处就大大的凸现出来了。
在C++中,可以通过placement new 来实现内存池。当然boost也有实现的内存池成品(boost::pool),这里不做过多解释。

