小编plk*_*ana的帖子

为什么C#运行速度比C++快?

我不是在开玩笑.我有一个C#应用程序和一个C++应用程序.他们完全相同的东西,完全相同的代码量......

...... C#one运行得更快,不仅速度更快,而且速度提高了10倍.

这让我感到很奇怪,因为对于其中一个,我在调试器中运行C#应用程序,这应该减慢C#开始.然后,由于C#是带有巨大开销的字节码,使用.NET编译成带有一些额外功能的MSIL,这应该会减慢速度.虽然C++只是机器代码.

这是C#代码:

static void main()
{
    ulong i = 0;
    while (i < 100000000000)
    {
        Console.WriteLine(i);
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这是C++代码

int main()
{
    usigned long i = 0;
    while (i < 100000000000)
    {
        cout << i << endl;
        i++;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

他们只是在计算并显示一个数字.C++将是1000,而C#将是7000.(快7倍)

我甚至尝试编译它们,并在没有调试器的情况下使用命令提示符运行它们:cplusplus.exe && csharp.exe

是的,我知道也许这个问题是"offtopic":P或者可能是"不清楚要求的是什么".:/但请,有人向我解释.

如果这很重要,我正在使用这个CPU:Intel i7 2.5 Ghz.

编辑:我做了cout << i <<"\n"; 想法,再加上std :: ios_base :: sync_with_stdio(false); 想法,没有任何运气或结果的变化.

编辑2:我尝试了C的printf(),它的速度要快得多.比C#快3倍.

人们告诉我IO流非常慢,所以我在没有写入控制台的情况下尝试了它们,C++仍然比C#快得多.

总之,Writeline()比cout快得多,而printf()比两者快得多.所以写入控制台是唯一减慢速度的因素.

TLDR:printf()获胜,而控制台写入减慢了东西.

c# c++ performance

0
推荐指数
1
解决办法
1407
查看次数

标签 统计

c# ×1

c++ ×1

performance ×1