【发布时间】:2011-10-20 18:31:29
【问题描述】:
据我所知,所有脚本语言和核心科学程序通常都是用 C 编写的;这使得实现变得混乱,但在某种程度上直截了当。
我知道这些人希望最大限度地发挥他们的性能,但是使用 C 字符串和 C 结构与使用 C++ 类之间是否存在真正的区别? C++ 似乎以同样的方式工作,除了虚函数之外,它存储一个类函数一次,该类的每个实例都调用该函数。
是什么让 C 变得更快?在诸如 python 或 sqlite 之类的项目中,谁必须是最快的?
【问题讨论】:
-
“用任何语言写得好的代码总是比用任何其他语言写得不好的代码好。”
-
这些项目中有许多是在 C++ 被广泛接受并处于合适状态之前开始的。惯性让人们继续使用 C。
-
@Will - 不。“一种语言是否比另一种语言快”是无法回答的。语言并不快,只有它们的实现。 “一种语言的 X 实现是否比另一种语言的 Y 实现更快?”可以通过分析来回答,但是你分析了什么?语言实现在各个领域都可以快也可以慢,毫无疑问,要测试所有这些是不可能的。一个更好的问题是“为什么语言设计者选择 X 语言而不是 Y 语言?”这有一个明确的答案(不同语言设计者给出的基本原理)并且更有可能有所帮助。
-
C 和 C++ 中相同的代码应该通常以完全相同的速度运行,例外是由于别名规则不同等而具有不同语义的代码。区别在于在 C 习语和 C++ 习语之间。如果您使用 C 或 C++ 中的最佳实践 C 习惯用法编写代码,它通常会比使用最佳实践 C++ 习惯用法编写的类似功能更轻、更快(并且处理的失败案例更少)(无论您是否编写它)在 C 或 C++ 中),但它可能会花费你更多的工作来编写。
-
C 的整体学习速度明显快于 C++ ;)
标签: c++ c performance