时隔16年JeffBarr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

Mainsoft:在 JVM 中运行.NET 依旧能保证性能

  • 2007-07-25
  • 本文字数:1416 字

    阅读完需:约 5 分钟

Mainsoft 公司最近发布了 2.0 版本的 Mainsoft for Java EE (原名 Visual Mainwin),同时发布的还有一份有趣的白皮书 。据该白皮书称,一个基于.NET 的应用程序,若是借助于Mainsoft for Java EE 技术交叉编译之后运行于Java EE 平台上,那么在某些方面的性能甚至会强于原有的.NET 应用程序。InfoQ 为此特地采访了Mainsoft 的CEO—— Yaacov Cohen

Cohen 首先介绍了 Mainsoft for Java EE 的工作原理:

我们的交叉编译引擎将.NET Framework 生成的 Microsoft Intermediate Language(MSIL)交叉编译成 Java 的字节代码。然后我们基于 Java 的.NET Framework 实现即可支持应用程序运行于 Java 平台之上。不但如此,我们的 Visual Studio 扩展还能够允许开发者在 Java EE 平台上编写、编译、部署以及调试 Web 或服务器应用程序。

因为代码的交叉编译发生于字节码级别,所以其过程并不需要源文件转换——这就意味着开发者仍旧可以使用 Visual Studio.Net 作为他们可移植程序的开发环境。InfoQ 了解到,Mainsoft 还使用 Java 重新实现了很大的一部分.NET Framework,包括 ASP.Net ADO.Net 、以及 Web Service API 等。不过因为 Mainsoft for Java EE 主要专注于 Web 以及服务器应用程序方面,所以类似 Windows Form 的组件则没有提供。 InfoQ 查阅了 Mainsoft 的白皮书 ,这份白皮书提供了一个案例分析,讲述某家公司使用 Mainsoft for Java EE 将一个现有的基于 Windows 平台上的.NET 应用程序迁移到基于 Linux 平台上的 Java EE 中的故事。InfoQ

在这个案例中发现了如下值得注意之处: - 迁移后的 Java EE 应用程序运行于 IBM WebSphere BEA WebLogic Apache Tomcat 之上

  • 迁移后的 Java EE 应用程序在 Windows、 Linux AIX 平台上通过了测试
  • 在完全相同的硬件条件下,迁移后的 Java EE 应用程序(运行于 WebSphere 之上):
  • 每秒处理请求数(requests per second,RPS)比原有.NET 应用程序提高了 8%
  • 具有更好的 CPU 可伸缩性 ,在 RPS 方面几乎是线性增长的
  • 在各种经过测试的负载情况下,都提高了至少 4% 的响应时间
  • 在重负载情况下,RPS 提高了至少 5%

对于为何 Java 要快于.NET,Cohen 谨慎地解释说,这份白皮书的意义仅仅在于说明服务器应用程序能够在不损失性能的情况下进行迁移而已:

我们尽力调整这个开源的.NET 实现让其符合 WebSphere 的架构,以便充分发挥其长处——这与微软公司的.NET Framework 也充分地发挥了 IIS 和 Windows 的优势一样。关于那份性能评价,我们在两个操作系统以及硬件平台上都仔细地调整了垃圾收集算法、 页和堆的大小。在使用这些类库的同时,我们也发现了 IBM Java 虚拟机中很多值得优化的部分。在最新发布的 WebSphere Application Server 6.1 中,可以看到很多地方已经有所改进。

随着越来越多的公司开始开放其产品的源代码(例如 Sun 公司的 JDK Terracotta 公司的 DSO 以及 Adobe 公司的 Flex SDK 等),InfoQ 又询问了 Cohen 关于 Mainsoft 是否要跟随这个潮流。Cohen 回答到:

跨平台的.NET 将是一个非常艰巨的项目,并且 Mainsoft 是 Mono 开源项目最大的贡献者——几乎和 Novell 一样。所以除了核心的 mscorlib.jar(这个将作为 Mainsoft 的私有 Java EE 实现)之外,我们将所有的.NET Framework 代码都共享给了 Mono 项目。Mainsoft 同时也提供了一个叫做 Grasshopper 的免费开发版本 ,可用于将产品部署到 Tomcat 服务器以及单 CPU 配置上。

查看英文原文: Mainsoft: Running .NET on the JVM While Maintaining Performance

2007-07-25 23:501810
用户头像

发布了 37 篇内容, 共 10.4 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

一键接入 ChatGPT,让你的QQ群变得热闹起来

江户川码农

人工智能 聊天机器人 openai ChatGPT

2022 IoTDB Summit:IoTDB PMC侯昊男《Apache IoTDB首创时序顺乱序分离存储引擎 IoTLSM》

Apache IoTDB

数据库 IoTDB

2022 IoTDB Summit:IoTDB PMC 田原《大规模并行处理与边缘计算在 Apache IoTDB 中的实践》

Apache IoTDB

数据库 IoTDB

Clean Start与Session Expiry Interval - MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 客户端 企业号 3 月 PK 榜

软件测试 | Java数据持久化技术

测吧(北京)科技有限公司

测试

软件测试 | Spring Boot的RESTful设计与实现

测吧(北京)科技有限公司

测试

十年业务开发总结,如何做好高效高质量的价值交付

阿里技术

质量保障 交付质量

高性能存储SIG月度动态:ANCK 5.10正式支持ublk、erofs容器镜像按需读时延优化60%

OpenAnolis小助手

操作系统 高性能存储 龙蜥社区 sig

软件测试/测试开发 | 学做测试平台开发-Vuetify 框架

测试人

软件测试 测试开发 测试平台

从智能进化模型看用友BIP的AI平台化能力

用友BIP

人工智能 用友 数智化 用友BIP

软件测试 | parametrize实现参数化

测吧(北京)科技有限公司

测试

老铁们看过来!2023首场昇腾AI开发者创享日来到“东北黑土地”沈阳

科技热闻

软件测试 | python数据持久化技术

测吧(北京)科技有限公司

测试

软件测试 | 后端web开发框架

测吧(北京)科技有限公司

测试

软件测试 | YAML是什么?

测吧(北京)科技有限公司

测试

LeetCode题解:2373. 矩阵中的局部最大值,遍历,详细注释

Lee Chen

JavaScript LeetCode

OpenHarmonyApp启动页后记

白晓明

云数据库 HarmonyOS OpenHarmony 云函数 AppGallery Connect

你知道目前master分支目前多大吗?

坚果

OpenHarmony

软件测试 | pytest测试框架

测吧(北京)科技有限公司

测试

软件测试 | python跨平台API对接

测吧(北京)科技有限公司

测试

ChatGPT开放API,上来就干到最低价,可以人手一个ChatGPT了

引迈信息

低代码 快速开发 openai ChatGPT

Hypium框架使能ArkTS应用高效测试

HarmonyOS开发者

HarmonyOS

2022 IoTDB Summit:Apache IoTDB PMC 张金瑞《为物联网场景优化的时序数据库共识协议》

Apache IoTDB

大数据 IoTDB

软件测试 | 跨平台API对接

测吧(北京)科技有限公司

测试

软件测试 | Android与iOS在app测试时有什么区别?

测吧(北京)科技有限公司

测试

4月 · CSM认证周末班【提前报名特惠】“全球金牌课程”CST导师亲授

ShineScrum

研讨会回顾 | Perforce版本控制工具Helix Core入华十年,携手龙智赋能企业大规模研发

龙智—DevSecOps解决方案

版本控制 数字资产 游戏开发 数字资产管理 芯片研发

软件测试 | 为什么使用Spring Boot

测吧(北京)科技有限公司

测试

软件测试 | Spring Boot集成Swargger

测吧(北京)科技有限公司

测试

软件测试 | Spring Boot异常处理

测吧(北京)科技有限公司

测试

Atlassian Server用户新选择 | 数据中心产品是否适合您的企业(3)?

龙智—DevSecOps解决方案

Server Atlassian Jira 数据中心版

Mainsoft:在JVM中运行.NET依旧能保证性能_Java_Ryan Slobojan_InfoQ精选文章