C re-Alloc/malloc替代方案



我有一个我想重新分配到不同大小的内存块,但是我不在乎存储器是否被丢弃。释放()内存,然后malloc()一个新的内存块,还是realloc()是要走的速度?

是realloc()

我认为任何一种解决方案都不是最佳的,因为执行了额外的工作。我敢打赌,realloc()可以更快地找到足够大的内存块,因为当前片段可能大或足够小以容纳新的内存块。但是,如果片段不够大,则必须复制malloc()不的内存。

我正在使用Linux。是否有特殊功能?

谢谢!:)

如果您不关心内容,则标准成语是执行free,其次是malloc。找到一个块比复制它便宜,也不能保证realloc不会自行搜索。

与往常一样,在这种情况下,如果您真的在乎性能,最好在目标平台和现实的工作负载下基准两个解决方案,然后查看哪个性能更好。

realloc = alloc,然后复制然后免费另一个解决方案是Alloc,并且肯定仅是更快的

我会继续前进并相信Realloc实现做正确的事。同样,将来,您不应该担心内存是否被移动,重新定位等。这种先发制的优化是不需要的,因为所花费的大部分时间都将在上下文中从用户空间转换为内核空间。

相关内容

  • 没有找到相关文章

最新更新