8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
我们来试试用.NET Core从Windows环境开发,然后porting到Linux环境(布署及执行.NET Core),之前曾看过stackoverflow文章提到Mono的性能问题,这一次我们同时也想了解.NET Core与Mono在性能中的表现是否有变化。
环境:开发环境: Windows 10 + Visual Studio 2017
AP环境: Red Hat Enterprise Linux + Mono 5.0.1.1 + .NET Core 1.1
新增主控台应用程序(.NET Core) 与(.NET Framework)
我们第一个设定项目名称是CoreConsole
接着新增主控台应用程序(.NET Framework) ,这边设定项目名称是MonoConsole
分别打开两个项目的program.cs程序,输入以下程序internal class Program
{
private static void Main(string[] args)
{
DateTime dtStart = DateTime.Now;
System.Console.WriteLine(dtStart.ToString("o"));
run();
DateTime dtEnd = DateTime.Now;
System.Console.WriteLine(dtEnd.ToString("o"));
TimeSpan ts = dtEnd - dtStart;
System.Console.WriteLine(ts.TotalMilliseconds);
//.NET CORE项目
System.Console.WriteLine(".NET CORE");
//.NET Framework项目
System.Console.WriteLine(".NET Framework");
Console.ReadKey(true);
}
public static void run()
{
int i = 2;
int j = 3;
for (int x = 0; x < 20000000; x++)
{
int a = i + j;
int b = i - j;
int c = i * j;
int d = i / j;
}
}
}
简单的加减乘除执行2000万次
Windows 环境执行:
首先在windows环境下以Visual Studio 执行!
启动但不侦错(Ctrl+ F5)
.NET Core: 175ms
.NET Framework : 132ms
速度相近,.NET Framework略快一些,差别不太大,都很快。
Linux 环境执行:
分别打开两个项目的bin目录,将dll及exe以pscp或是ftp命令复制到Linux环境
.NET Core(直接编译成dll)
.NET Framework(传统的exe)
.NET Core : 326 ms
Mono : 202 ms
小结:相较Windows环境执行都来的慢一点点,不过因为机器不同(实例 vs 虚拟,i7 vs E5),没办法比较
在Linux上也都算快,Mono略快了一些,不过2000万次数学运算,差异0.1秒也不太明显。
虽然执行了几次都是类似的结果,不过数学加减乘除运算并不代表所有运算情境喔。
参考:
Runtime Performance of NET Core vs. NET Framework vs. Mono
What is the difference between .NET Core and Mono