繁体   English   中英

处理内存,垃圾收集器之类的

[英]Handle memory, garbage collector like

我有一段执行大量内存分配的代码。

我想知道是否可以实现一种模式来重用以前删除的内存(因为我建立了许多临时对象来分配内存,例如int*char*等,但是它可能非常大)。

我的目的是优化,因此即使在使用临时对象时,我也想重用内存而不是“删除”它。

可能还不够清楚,请告诉我,以便我可以发布一些代码来向您显示问题。

将临时对象的创建委托给一个类。

正如Dan所指出的,您需要通过重载该类中的new和delete运算符来实现内存管理器或Pool。

首次调用新内存时分配大块内存,并将其分成固定大小的块。 继续将这些块用作临时对象。 调用delete时,只需更新该块的分配状态即可。

完成使用临时对象后,删除大块。

我要做的就是确保对象中具有备用指针。 然后,我只是保留以前使用过的对象的链接列表,而不是“删除”,并将其推到列表的前面。 而不是“新”我弹出一。 如果列表为空,那是我创建一个真正的新列表的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM