C ++比C#快多少?

或者现在是另一种方式?

从我听说的有一些地方C#证明比C ++更快,但我从来没有胆量来自己测试它。

想到你们任何一个人都可以详细解释这些差异,或者指出我在这方面的信息的正确位置。


没有严格的原因,为什么像C#或Java这样的基于字节码的语言具有JIT不能像C ++代码那么快。 然而,C ++代码在很长一段时间里过去显得更快,而今天在很多情况下也是如此。 这主要是由于更高级的JIT优化实施起来很复杂,而且非常酷的只是刚刚到达。

所以C ++在很多情况下速度更快。 但这只是答案的一部分。 C ++实际上更快的情况是高度优化的程序,专家程序员彻底优化了代码。 这不仅非常耗时(并且因此很昂贵),而且由于过度优化而通常导致错误。

另一方面,解释型语言中的代码在运行时(.NET CLR或Java VM)的后续版本中速度会更快,而无需执行任何操作。 有很多有用的优化JIT编译器可以做到这一点,在指针语言中是不可能的。 另外,有人认为垃圾回收通常应该像手动内存管理一样快或者更快,并且在很多情况下是这样。 通常你可以在C ++或C中实现和实现所有这些,但它会变得更加复杂和容易出错。

正如Donald Knuth所说,“不成熟的优化是一切罪恶的根源”。 如果您确实知道您的应用程序将主要包含非常高性能的关键算术,并且它将成为瓶颈,并且在C ++中肯定会更快,并且您确信C ++不会与其他人发生冲突要求,去C ++。 在任何其他情况下,请专注于首先以最适合您的任何语言正确实施您的应用程序,然后在运行速度过慢时发现性能瓶颈,然后考虑如何优化代码。 在最糟糕的情况下,您可能需要通过外部函数接口调用C代码,因此您仍然可以使用低级语言编写关键部分。

请记住,优化正确的程序相对容易,但更难以纠正优化的程序。

提供速度优势的实际百分比是不可能的,它主要取决于您的代码。 在许多情况下,编程语言的实现甚至不是瓶颈。 请参考http://benchmarksgame.alioth.debian.org/上的基准,并带有很多怀疑,因为它们主要测试算术代码,它很可能与您的代码很不相似。


C#可能不会更快,但它会让你/我的速度更快。 这是我所做的最重要的措施。 :)


它快五个橙子。 或者说:没有(正确的)一揽子答案。 C ++是一种静态编译的语言(但是后来还有配置文件引导优化),C#运行在JIT编译器的帮助下运行。 有很多不同之处,像“多快”这样的问题是无法回答的,甚至没有给出数量级的答案。

链接地址: http://www.djcxy.com/p/5383.html

上一篇: How much faster is C++ than C#?

下一篇: else statement, which is faster?