gpt4 book ai didi

c# - 我期望 myApp.exe 比 myApp.vshost.exe 运行得更快,但是

转载 作者:行者123 更新时间:2023-11-30 22:35:10 27 4
gpt4 key购买 nike

来自 vshost(在 VS 版本中运行)

 array pure 00:00:02.9634819
1200000000
Basic: 00:00:04.1682663

来自独立程序(编译版本)

 array pure 00:00:09.1783278 // slower, why?
1200000000
Basic: 00:00:00.5985118 // faster, as expected

所以似乎从 VS 运行有时会加速程序?

我的测试代码是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace vsHostTest
{
class Program
{
static long Five(int s0, int s1, int s2, int s3, int s4)
{
return s4 + 100 * s3 + 10000 * s2 + 1000000 * s1 + 100000000 * s0;
}

static void Main(string[] args)
{
Stopwatch watch = new Stopwatch();
long testSize = 10000000;
int[] myarray = new int[] { 1, 2, 3 };
watch.Start();
for (int j = 0; j < testSize; j++)
{

bool i = myarray.Contains(2);

}
watch.Stop();
Console.WriteLine("array pure {0}", watch.Elapsed);

testSize = 200000000;
long checksum = 0;
watch.Restart();
for (long i = 0; i < testSize; i++)
{
long ret = Five(1, 2, 3, 4, 5);
checksum += ret % 9;
}
watch.Stop();
Console.WriteLine(checksum);
Console.WriteLine("Basic: {0}", watch.Elapsed);
Console.ReadKey();
}
}
}

最佳答案

我每个都跑了四次,但不包括每个平均值的第一个结果。

vshost:

array pure: 6.83 Basic: 3.62

console:

array pure: 6.64 Basic: 1.57

我应该补充一点,在 vshost 中的所有时间都比在控制台中慢。我不确定你为什么会得到这样的结果,但是 vshost 将调试器附加到进程,而通过控制台运行它则不会。因此,控制台版本总是会更快。

此外,在对 .net 应用程序进行基准测试时,仅运行一次测试不足以获得准确的测量结果。您应该始终多次运行测试,丢弃第一个(如果您不想比较冷运行,因为 .net 缓存很多)或最外围的测量。

另外,我觉得问这个问题很愚蠢,你确定你在通过控制台运行时运行了发布版本吗?我确定你做过,但我总是问,因为我有时会犯这样的愚蠢错误。

关于c# - 我期望 myApp.exe 比 myApp.vshost.exe 运行得更快,但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7517844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com