mono (.NET for Linux) 0.25发布及其横向评测

原创 2003年07月12日 22:23:00
mono项目(http://www.go-mono.org/)是移植Microsoft .NET Framework到Linux平台的一个Open Source项目,北京时间今天上午(6月27号)发布0.25版,除了源代码,还有For RedHat Linux x86 9.x/8.x/7.x、Mandrake 9.1/x86、Debian和Windows (XP, 2000, NT)的二进制安装包可以直接下载。完成程度已经比较高,虽然还没有实现完整的类库,但是仅仅8M多的体积,就已经包含了全部执行环境和在二十多兆的Microsoft .NET Framework,甚至一百多兆的Microsoft .NET Framework SDK都没有包含的C#编译器。即使相对Java SDK 三十多兆的体积也是很小的。是学习C#和.NET非常好的入门工具。不过它是不包含开发文档的,必须安装.NET Framework SDK才可以获得类库参考等文档。

大家如果同时有Windows和Linux环境并且都安装mono, 试用过程中就会惊喜的发现,用Windows或者Linux平台上的mono C#编译器编译出的exe文件可以不需重新编译就由两个操作系统的mono执行环境直接执行。这意味着什么呢?不正是著名的”Compile Once, Run Everywhere”吗?虽然mono现在只支持Windows和Linux的x86版本, 但相信移植到其他平台困难不大。这样的话exe文件跟Java的class文件还有什么区别吗?Java要如何面对?

这里我列出了早前使用mono 0.24版进行的Java, mono, MS .NET Framework的简单横向性能比较。

测试任务是比较简单的,考虑到比较耗时的一般是浮点运算,而平时Java应用中发现大部分的时间消耗在类的创建过程,因此设计了以下简单的任务:大循环创建浮点和整数数组,内循环将数组内的值进行重复的运算。两个任务分别用Java, C#实现,在以下环境执行:

Linux : Red Hat Linux 7.3 2.96-110, kernel 2.4.18-3, Intel(R) Pentium(R) 4 CPU 1.60GHz, 256M RAM

win2k : Windows 2000 Professional SP3, Intel Celeron 800MHz, 384M RAM

java : win2k: Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode); Linux: Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01) Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

mono : mono JIT compiler version 0.24 http://www.go-mono.org/download.html

Microsoft Framework : Microsoft .NET Framework 1.1

(注:结果图片)
CSDN_Dev_Image_2003-7-122052231.gif结果图片
/Develop/ArticleImages/19/19612/CSDN_Dev_Image_2003-7-122052231.gif
数字显示的是完成任务消耗的毫秒数。

从测试结果我们可以大致的看出mono的JIT编译器和虚拟机跟Java的相比效率还比较差,虽然在快的CPU上差距大幅缩小,特别是浮点运算。考虑到JDK1.4.0的Hotspot JVM已经经过了近十年投资巨额金钱的优化,而mono仅仅是业余爱好者在不到一年时间内开发出来的,提高的空间应该还很大。再加上同样的“一次编译,到处运行”特性。Java,要走好了。Java对MS .NET Framework方面则是后者占优。

刚进行了mono 0.25的简单测试,相对0.24版有小幅度提高。可见mono还是在进步中。让我们希望这个新的跨平台开发环境再接再厉,给我们一个新的选择。

发布人:bruise

来源:博客中国-卢威

不装mono,你的.NET程序照样可以在Linux上运行!

让.NET应用程序在linux上运行,目前通用的做法就是在Linux上安装mono,然后通过”mono your.exe“命令运行这个程序。 这种运行.net程序的办法有两个弱点,一个是需要客户...
  • config_man
  • config_man
  • 2016年09月30日 00:28
  • 2004

使用Mono打造轻量级的.NET程序运行时

在使用Mono让.NET程序跨平台运行这篇文章中,我们已经对Mono以及.NET程序的运行机制有了初步的理解。今天我想来谈谈”使用Mono打造轻量级的.NET运行时”这样一个话题。为什么我会有这样一种...
  • qinyuanpei
  • qinyuanpei
  • 2016年05月03日 14:51
  • 8614

Linux下配置Mono和Jexus并且部署ASP.NET MVC5

1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有...
  • hliq5399
  • hliq5399
  • 2017年01月10日 09:30
  • 3733

使用Mono让.NET程序跨平台运行

众所周知,Unity3D引擎凭借着强大的跨平台能力而备受开发者的青睐,在跨平台应用开发渐渐成为主流的今天,具备跨平台开发能力对程序员来说就显得特别重要。传统的针对不同平台进行开发的方式常常让开发者顾此...
  • qinyuanpei
  • qinyuanpei
  • 2016年05月03日 14:49
  • 13247

Linux下应用Mono配置Asp.NET服务

在Linux上搭建Asp.Net服务之前,请先确定已经安装好Linux操作系统、Mono Runtime,假如需要使用mod_mono的话,还需要首先完成Apache的安装和配制。Mono的安装和配置...
  • xfworld
  • xfworld
  • 2007年01月11日 14:44
  • 786

人们接受Mono之前必须明确的事情

和飞飞鱼一样,我也一直在向一些公司和个人推广Mono。不得不承认,现实世界中,人们一提到Mono,首先的需求就是把Microsoft .Net下的程序移植到Mono.Net。现实和人们的这个期望多少有...
  • XinYaping
  • XinYaping
  • 2011年08月29日 12:08
  • 18753

Mono 开发 (使用.NET技术的你,绝对不能忽略Mono)

当微软把.NET提交到ECMA/ISO成为公开的标准时,就表示.NET已经走向开放,不再只是微软专属的技术。当Mono 1.0正式发布时,也就等于是宣布开放成真了,.NET程序不用被局限在Win...
  • shanyou
  • shanyou
  • 2006年03月10日 22:58
  • 566

让你的.NET程序脱离Framework跑起来---2.释放MONO的威力

Mono我不必多说,虽然很多人并不看好它的前途,但他的定位使得他对外界的依赖很少。Mono现在可以完美的支持基于.NET1.1以下的.NET程序,C#2.0的语言特性他也已经具备了,只差那庞大的Fra...
  • shouldbe
  • shouldbe
  • 2006年02月06日 02:01
  • 4210

.NET Framework、.NET Core、Mono、Xamarin之间关系

本是同根生 截止2017年7月,这些项目均为微软.NET Foundataion旗下开源项目,微软朝着商业和开源两种途径,将.NET平台开源、跨平台化,以适应云计算、移动互联网时代的要求。2000...
  • MePlusPlus
  • MePlusPlus
  • 2017年07月28日 12:06
  • 918

交叉编译Mono

1. 安装scratchbox     (1) 添加软件源:              sudo vim /etc/apt/sources.list                  最...
  • sy_liuzuo
  • sy_liuzuo
  • 2013年03月30日 21:24
  • 2891
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mono (.NET for Linux) 0.25发布及其横向评测
举报原因:
原因补充:

(最多只允许输入30个字)