.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上更高。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM