c++ - C 与 C++ 在内存分配方面的性能

标签 c++ c performance memory-management

我计划参与开发用 C 语言编写的代码,用于复杂问题的蒙特卡罗分析。此代码在内存中分配大量数据数组以加快其性能,因此代码作者选择了 C 而不是 C++,声称可以使用 C 编写更快、更可靠(关于内存泄漏)的代码。

你同意吗?如果您在计算过程中需要在内存中存储 4-16 GB 的数据数组,您会选择什么?

最佳答案

绝对是 C++。默认情况下,两者之间没有显着差异,但是 C++ 提供了一些 C 没有的东西:

  1. 构造函数/析构函数。这些可让您自动执行大部分内存管理,从而提高可靠性。
  2. 每类分配器。这些使您可以根据特定对象的设计和/或使用方式来优化分配。如果您需要大量小对象(举一个明显的例子),这会特别有用。

底线是,在这方面,C 绝对没有提供优于 C++ 的可能性。在最坏的情况下,你可以用同样的方式做同样的事情。

关于c++ - C 与 C++ 在内存分配方面的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513741/

相关文章:

c - Malloc 不创建内存

c - 如何将 unsigned long long 类型的刻度转换为可读时间格式?

c - 这个画线算法可以优化吗? -SDL

c++ - 将 utf8 (char*) 转换为 wchar_t 的一个文件库?

c++ - 对象似乎没有通过C++的引用传递

c - 当数组在 c 中达到长度 0 时断言中止

ruby - 为什么这个 XML 解析 Ruby 代码在禁用 GC 的情况下运行得更慢?

c++ - 在 native C++ 应用程序中托管 WPF 表单时出现性能问题

c++ - 获取 system() 的输出到一个变量中

c++ - 堆分配的对象会在堆栈上分配它们的成员吗?