有没有办法一次释放所有对象boost::singleton_pool
?
我看到我可以访问这些方法:
static void free(void *const);
static void ordered_free(void *const);
static void free(void *const, const size_type);
static void ordered_free(void *const, const size_type);
我想我可以通过手动迭代它们来使用它们来释放所有对象。但是,有没有办法说“释放所有对象”以便池再次完全释放?
本质上,我想要类似的东西,purge_memory()
但这不会将内存释放回系统,而是将其分配在池中。
原因是我在池中构建了一个大对象(~2GB),我想很快摆脱它并开始构建一个新对象。当前调用purge_memory()
大约需要 2 秒,并且还会向系统释放内存(在诊断或任务管理器中,您可以看到进程内存在减少)。我希望通过简单地释放池中的东西而不实际解除分配,我可以非常快速地炸毁第一个对象并开始构建下一个对象。