在C++中malloc和new之间是否有任何性能差异

One*_*ore 2 c++ malloc new-operator

我已经看过几篇关于malloc和new之间差异的帖子,我确实理解这一点.

但是,这些帖子都没有谈论性能,所以我想知道这两者之间是否存在任何性能差异,或者编译器是否基本上做同样的事情.

为了比较,让我们假设我们在这里讨论原始类型(谢谢Hans Passant).

先感谢您.

Die*_*ühl 8

你可能会想比较malloc(),并free()operator new()operator delete()(和它们的排列形式):这是怎样的记忆是从对象的构造分配独立.性能可能非常相似,它很可能是这两种方法最终会使用相同的内存池:在C++运算符可以是薄wrappeer周围malloc()free()(而不是周围的其他方式:用户可以安全地实现operator new()operator delete()在条款中malloc()free()).

要确定实际性能,您显然需要以合理的方式分析这两种方法.尽管如此,我不希望在大多数系统上有太大差异.当然,结果将针对不同的系统.