技术开发 频道

微软声称.NET项目能运行在JVM而维持原有性能

【IT168技术新闻】微软最近发布了Mainsoft for Java EE 2.0版本(先前被称为Visual Mainwin),并且还发布了intriguing whitepaper ,它展示了一个基于.NET的应用程序使用Mainsoft for Java EE,交叉编译运行在Java EE上,比原来仅仅运行在.NET环境表现出来的性能更好。让我们听听Mainsoft 首任执行官 Yaacov Cohen是如何评论的。

    首先,大家要求Cohen描述一阿下Mainsoft在Java EE中是工作原理是怎么样的。

    最初是.NET Framework 框架编译器生成微软中间语言代码(MSIL),交叉编译引擎交叉编译这些微软中间语言代码,将它们生成Java 字节码。.对NET Framework运行时间进行了基于Java的实现,因此支持应用程序执行的类。最终,我们对Visual Studio进行扩展,能够使得开发者在JEE平台上编写代码,编译,部署,调试Web应用程序和服务器应用程序。

    既然代码是交叉编译的,并且还是字节码 的,因此不需要在进行转换了——这意味着对于通信应用程序(ported application),Visual Studio.Net仍旧是一个单一的开发环境。InfoQ发现Mainsoft宠幸用Java实现了.Net Framework框架的大部分,包括ASP.Net, ADO.Net 和Web 服务API,但是,因为Mainsoft是为Java EE打造的,所有它焦点放在web 和server 应用程序上,比如说像Windows Forms 这样的组件还没有实现。

    InfoQ发现Mainsoft whitepaper给我们呈现了一个学习案例,一个公司使用Mainsoft for Java EE让一个基于.Net的Windows应用程序和一个基于Java EE的Linux应用程序通信,结果发现如下问题:

· 被通信的Java EE 应用程序继续工作在IBM WebSphere, BEA WebLogic 和 Apache Tomcat 上。
· 被通信的Java EE 应用程序在Windows, Linux, 和 AIX 上测试过。
· 同 样的硬件,被通信的Java EE 应用程序运行在WebSphere上

1)比原始的.Net应用程序每秒钟能够多处理8%的请求 
2) 拥有更好的CPU伸缩性(CPU scalability),o RPS几乎线性增长。 
3) 响应时间至少快4%
4)重负荷情况下至少多处理5% RPS

    被问到为什么Java比.NET,快的时候,Cohen很谨慎的指出whitepaper有意的大家展示服务器应用程序能够通信,而不影响性能。

    我们均衡了与之相当的性能,通过协调开源.NET工具来适合WebSphere的框架强度,就像Microsoft如何调节.NET framework框架和IIS、Windows。经过性能的研究,我们配置了合适的垃圾回收算法,页面大小和堆大小。我们还认识到在某些情况下需要优化IBM的Java虚拟机。这些变化在WebSphere Server 6.1中广泛存在。

    现在有许多的公司都在开源自己的产品(如Sun's JDK, Terracotta's DSO, 和Adobe's Flex SDK),InfoQ询问Cohen 一个问题,Mainsoft 是否也跟着它们的步伐,也开源Mainsoft。他答道:  跨平台的.NET是一个前途无量的项目,几乎和Novell公司一样,是Mono open source project最大的贡献者。我们和Mono分享了.NET Framework,除了mscorlib.jar这个核心库,这是微软拥有所有权的,对.NET核心类库进行了Java EE实现。

    Mainsoft已经你跟提供了免费的开发编辑器,称为Grasshopper,可以用来在Tomcat和单个CPU配置上的开发。
0
相关文章