小编Man*_*Row的帖子

malloc cpu周期

就CPU周期而言,malloc()的成本是多少?(Vista/OS,最新版gcc,最高优化级别......)

基本上,我正在实现一个复杂的DAG结构(类似于链表),它由一些16B(不太常见)和20B节点(更常见)组成.

偶尔,我将删除一些节点,然后添加一些节点.但是,我可以简单地将不需要的节点移动到我的数据结构的末尾,然后在我的算法继续时更新字段,而不是总是使用malloc()和free().如果有空闲节点,我将更新字段; 如果没有,我将不得不分配一个新的.

问题是,我可能只有一个可用节点,而必须输入,例如,20个节点的数据.这意味着:

  • 我将检查可用的免费节点
  • 检查将成功,并且该免费节点将更新
  • 我将多次检查可用节点19
  • 所有检查都将失败,并且每次都会调用malloc()

问题:真的值得吗?我应该像往常一样使用malloc()和free(),还是值得在列表末尾保留一些空闲节点,并且即使它通常会失败并继续检查malloc()也值得检查?

更具体地说,

malloc()的CPU成本是多少?

c

12
推荐指数
2
解决办法
6849
查看次数

标签 统计

c ×1