C++中delete和new的所需要的时间,哪个高,为什么
答案:2 悬赏:20 手机版
解决时间 2021-01-27 06:20
- 提问者网友:战皆罪
- 2021-01-26 21:01
C++中delete和new的所需要的时间,哪个高,为什么
最佳答案
- 五星知识达人网友:玩家
- 2021-01-26 22:18
一般情况是new高,因为分配内存时要从堆中找出一块合适的大小,又不会太浪费,又不会造成太多碎片,有时还要合并一些内存块,这个过程实际是很复杂的算法完成的
这个工作要么是delete之后做,要么是new之前做,我觉得new之前做比较靠谱,因为delete之后做,其实做到什么地步算好,很多指标是要靠猜的,怎么猜也不如用到时知道的情况更准确
不过new和delete实际是可以重载的,对于定制的情形,哪个消耗高就完全看具体情况了
这个工作要么是delete之后做,要么是new之前做,我觉得new之前做比较靠谱,因为delete之后做,其实做到什么地步算好,很多指标是要靠猜的,怎么猜也不如用到时知道的情况更准确
不过new和delete实际是可以重载的,对于定制的情形,哪个消耗高就完全看具体情况了
全部回答
- 1楼网友:酒醒三更
- 2021-01-26 22:44
new 需要的时间高
它需要在内存 堆里面 遍历到一块能满足你大小的内在 打上标记 返回内存地址
delete只需要 把new出来的地址重新标记成未使用状态就完事了
但两需要的时间都很少
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯