天天看点

算法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      

注意⚠️

  • 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