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