我计划参与开发用 C 语言编写的代码,用于复杂问题的蒙特卡罗分析。此代码在内存中分配大量数据数组以加快其性能,因此代码作者选择了 C 而不是 C++,声称可以使用 C 编写更快、更可靠(关于内存泄漏)的代码。
你同意吗?如果您在计算过程中需要在内存中存储 4-16 GB 的数据数组,您会选择什么?
最佳答案
绝对是 C++。默认情况下,两者之间没有显着差异,但是 C++ 提供了一些 C 没有的东西:
- 构造函数/析构函数。这些可让您自动执行大部分内存管理,从而提高可靠性。
- 每类分配器。这些使您可以根据特定对象的设计和/或使用方式来优化分配。如果您需要大量小对象(举一个明显的例子),这会特别有用。
底线是,在这方面,C 绝对没有提供优于 C++ 的可能性。在最坏的情况下,你可以用同样的方式做同样的事情。
关于c++ - C 与 C++ 在内存分配方面的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513741/