1. 程式人生 > >.Net程式在linux mono環境和WindowsServer上執行測試對比

.Net程式在linux mono環境和WindowsServer上執行測試對比

最近研究了一下mono,想把windows上寫的.Net程式移植到linux上跑。網上有資料說Linux上mono執行.Net程式效率比Windows高,本著實證的態度,只有實際驗證過才有說服力。

寫了個程式驗證一下,發現linux上的mono環境執行效率確實高些,現將測試過程記錄如下。

測試環境:

1、膝上型電腦 Lenovo T430 CPU Intel i5-3230M 記憶體8G 作業系統 Windows7 64位旗艦版

2、測試程式執行環境,在Oracle VM VirtualBox5.0.16上配置虛擬機器兩臺

Windows虛擬機器: 2G記憶體、1CPU,作業系統WindowsServer2008,執行環境.net framework4.5.2

Linux虛擬機器:2G記憶體、1CPU,作業系統CentOS6.7,執行環境mono4.4

為了更有說服性,使用Xamarin Studio5.10.3和Visual Studio 2013分別開發一個控制檯測試程式,解決方案配置均為Release

 程式核心程式碼如下:

using System;
using System.Data;
using System.Diagnostics;

namespace monotest
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Console.WriteLine (
"Hello World!"); testCount (); } private static void testCount() { Stopwatch watch=new Stopwatch(); int count=999999999; long value=1; watch.Start(); //測試邏輯 for
(int i=0;i<count;i++) { value=((value+1)*count-1)%count; } watch.Stop(); Console.WriteLine("value:"+value); Console.WriteLine("time:"+watch.Elapsed.ToString()); } } }

Xamarin Studio5.10.3 開發的程式名為monotest.exe 檔案大小8KB(8192位元組)

Visual Studio 2013開發的程式名為monotest1.exe 檔案大小5KB(5120位元組)

 兩個程式分別在windows和linux虛擬機器上執行5次,執行結果如下:

在windows上執行monotest.exe5次:

在windows上執行monotest1.exe5次

在linux上執行monotest.exe5次

在linux上執行monotest1.exe5次

執行結果統計

 從上表可以看出

1、程式執行時間與開發工具相差不大,不管是用Xamarin Studio還是Visual Studio開發的程式在同一環境下執行的時間相差不大。

2、同樣的程式在linux上執行的速度明顯比windows快,本次測試程式在windows上執行時間是linux上的1.4倍。

結論:.Net程式在linux的mono環境上執行效率比在windows上更高。