0
点赞
收藏
分享

微信扫一扫

算法1-c# dotnet core3.1


using System;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");

long t1 = GetTimeStamps();

for (int a = 0; a < 1001; a++)
{
for (int b = 0; b < 1001; b++)
{
for (int c = 0; c < 1001; c++)
{
if (a * a + b * b == c * c && a + b + c == 1000)
{
Console.WriteLine("a: {0}, b: {1}, c: {2}", a, b, c);
}
}
}
}

long t2 = GetTimeStamps();
// VS直接运行 3274 3133 3216 3159
// debug模式 2800 2900 3073
// release 大约600ms 570 580 590 性能要高于java等 真的很高 直接运行exe 或者 dotnet xxx.dll
Console.WriteLine("花费的时间为: {0} ms", t2 - t1);
Console.ReadKey();
}

public static long GetTimeStamps()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds);
}
}
}

  • 结果1 VS编辑器直接运行:

Hello World!
a: 0, b: 500, c: 500
a: 200, b: 375, c: 425
a: 375, b: 200, c: 425
a: 500, b: 0, c: 500
花费的时间为: 2916

  • 结果2 编译成debug模式:

Hello World!
a: 0, b: 500, c: 500
a: 200, b: 375, c: 425
a: 375, b: 200, c: 425
a: 500, b: 0, c: 500
花费的时间为: 3073

  • 结果3 编译成release模式:​​dotnet build -c Realease​

Hello World!
a: 0, b: 500, c: 500
a: 200, b: 375, c: 425
a: 375, b: 200, c: 425
a: 500, b: 0, c: 500
花费的时间为: 663

注意⚠️

以上结果是在Windows操作系统上完成的,但是我在macAir上使用同一套代码测试,java运行的事件远小于c# dotnet core。dotnet core在其他操作系统上还是不能编译成可执行文件,还是在Windows上有很大优势。

  • java

  HelloApp java Test
a: 0,b: 500,c: 500
a: 200,b: 375,c: 425
a: 375,b: 200,c: 425
a: 500,b: 0,c: 500
一共花费的时间为 1281 ms%

  • c#

  bin dotnet Realease/netcoreapp3.1/HelloApp.dll
a: 0, b: 500, c: 500
a: 200, b: 375, c: 425
a: 375, b: 200, c: 425
a: 500, b: 0, c: 500
花费的时间为: 3557


举报

相关推荐

0 条评论