在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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:501909
用户头像

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

关注

评论

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

火热的低代码和无代码赛道

互联网工科生

软件开发 低代码 无代码 应用开发

对线面试官 - TCP 经典面试题

派大星

Java 面试题

TDengine 3.1.0.0 版本成功发布,涉及五大板块功能更新!

TDengine

tdengine 时序数据库

Apache Dubbo 云原生可观测性的探索与实践

阿里巴巴云原生

Apache 阿里云 云原生 dubbo

专家老师带教!现场答疑!阿里云实时计算 Flink 版线下训练营北京站来啦!

Apache Flink

大数据 flink 实时计算

LeetCode题解:617. 合并二叉树,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

【名师代练】带你玩转 RocketMQ,角逐「RocketMQ 首席评测官」

阿里巴巴云原生

阿里云 云原生 Apahce RocketMQ

ASR 语音识别接口封装和分析

非晓为骁

AI 语音识别 ASR AIGC

低代码平台技术分享官丨工作流应用场景之动态驳回

inBuilder低代码平台

什么是业务敏捷,如何实现业务敏捷?

CODING DevOps

敏捷开发

“这对我个人能力的认可意义重大”!数据库“小白”到 Apache IoTDB committer 的心路历程!

Apache IoTDB

智能标签系统如何助力智能推送服务

MobTech袤博科技

前端开发 消息推送 APP开发 前端开发工具

融云:以对话为场景本质,AIGC 将如何改变游戏规则

融云 RongCloud

人工智能 AI 算法 AIGC 通讯

用低代码实现企业敏捷运营

力软低代码开发平台

什么是主数据管理?企业主数据管理方法论

优秀

主数据管理 主数据

报表分析工具免费试用:瓴羊Quick BI带你快速解析数据

夜雨微澜

文心一言 VS 讯飞星火 VS chatgpt (76)-- 算法导论7.3 1题

福大大架构师每日一题

福大大架构师每日一题

华为开发者大会2023:云空间筑牢鸿蒙生态“云基因”

HarmonyOS SDK

HarmonyOS

融云出海:两极分化的网红大户「拉美」如何出海制胜

融云 RongCloud

互联网 泛娱乐 出海 社交娱乐 社媒

【学习课程送福利!】InfoQ最新Java开发课程喊你来领奖品!100%中奖!

飞算JavaAI开发助手

Apache 官方限定社区周边,Community Over Code 亚洲大会参会礼包抢鲜看!

Apache IoTDB

如何落地复杂系统的架构治理?

码猿外

架构设计 软件架构治理

免费物联网平台好用吗?物联网平台卷蒙圈了,集体不要钱,白嫖的到底能不能用?

Geek_a6511e

物联网平台 物联网 物联网低代码平台 物联网平台选型

如何唤醒潜在用户?选择智能化推送系统的重要性

MobTech袤博科技

前端 前端开发 APP开发 前端开发工具

云原生 AI 工程化实践之 FasterTransformer 加速 LLM 推理

阿里巴巴云原生

阿里云 AI 容器 云原生

一个好用的低代码平台应具有哪些素养?

树上有只程序猿

低代码 零代码 应用开发

提速 40%,融云基于 QUIC 深度优化通信协议

融云 RongCloud

网络 协议 融云 QUIC 通讯

Python 运行 shell 命令的一些方法

互联网工科生

Python Shell Shell命令

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