c# - 与 C 和 C++ 相比,为什么 C# 代码需要很长时间才能执行

标签 c# c++ c performance

我正在解决一个在线网站上的简单编码挑战。我已经用 C、C++ 和 C# 编写了针对同一问题的代码。一旦您解决了问题,网站就会提供一些有关正确性和性能的统计数据。这就是令我震惊的事情。 C# 代码花了 0.06 秒来执行并给出结果,而 C 花了 0.006 秒,而 C++ 花了 0.009 秒。

我的问题是,为什么 C# 代码运行速度慢 10 倍?或者事实上 c/c++ 运行速度快 10 倍?

以下网站的链接。

C code
C++ Code
C# Code

我假设所有三个代码块上都有相同的测试用例。

最佳答案

C# 被编译为通用中间语言。然后及时运行 (JIT)。本质上,代码是根据需要进行编译的。 C 和 C++ 编译为计算机 native 汇编语言。这意味着在运行时不需要发生任何其他事情。虽然这是一个广泛的概述,但我恳请您研究一下 JIT 和 CIL,因为这将帮助您更深入地理解。您可以在这里查看它们: Common Intermediate Language , Just In Time

关于c# - 与 C 和 C++ 相比,为什么 C# 代码需要很长时间才能执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30806655/

相关文章:

c# - 你如何处理一个有挂起调用的线程?

c++ - 将另一个参数传递给仿函数的库

c++ - 用于分布式图形处理的 Scala 与 C++

C 在文本文件中隔离 "only strings"

c - 为什么 Atmega8 上的 MPU-6050 通过 I2C 输出显示恒定值?

c# - 异步/等待不工作 "string does not contain a defination fot GetAwaiter "并且没有扩展名

c# - 从库代码中发现程序集

c# - 如何在 dot net 中使用免注册 COM dll

c++ - OpenSSL CMS 在 C++ 和 Objective-c 中加密

c - 使用 fpurge(stdin) 时出错;