写点什么

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

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

关注

评论

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

Navicat Premium Mac|数据库一键切换

柠檬与橘子

重磅!天翼云多云统管体系及两个验证节点通过云计算服务安全评估

天翼云开发者社区

云计算 安全

火山引擎发布大模型生态广场MCP Servers,LAS MCP助力AI数据湖构建

火山引擎开发者社区

AI

从效率工具到价值闭环:Data Agent在企业应用的5个高频场景

火山引擎开发者社区

agent

建站SEO优化之站点地图sitemap

村头的猫

SEO 建站 sitemap SEO 优化

Intellij IDEA:升级到2025.1后无法运行Python配置:packaging_tool.py': [Errno 2] 没有此文件或目录

柠檬与橘子

数据“活”起来,办事“跑”起来|小奇说

奇点云

懒懒笔记 | 课代表带你梳理【RAG课程 13&14:多模态突围与综合论文问答系统实战】

商汤万象开发者

AI 大模型 LLM LLM 推理优化

将安全融入软件开发的每一步 | DevSecOps

禅道项目管理

项目管理 DevOps 软件开发 DevSecOps SaC安全即代码

火山引擎助力安卓手机抢滩AI应用,生态合力推动技术普惠进程

新消费日报

外卖App全栈开发范式革新:AI编程与小程序容器的技术协同选型实践

xuyinyin

火山引擎项亮:机器学习与智能推荐平台多云部署解决方案正式发布

火山引擎开发者社区

火山引擎

大模型时代搜索卷到天花板!这波向量数据库直接封神

火山引擎开发者社区

火山引擎 大模型

网站IPv6支持度检测怎么做?主要有哪些指标?

防火墙后吃泡面

推荐五大AI+MCP自动化测试工具!

电子尖叫食人鱼

AI MCP

等保测评快速通关秘籍,就在天翼云云等保专区!

天翼云开发者社区

安全 等保测评

HDC 2025丨华为云开源专题论坛,携手开发者迈向AI时代

华为云原生团队

云计算 容器 云原生

Project Office X Pro|轻松管理各种项目

柠檬与橘子

ChatClient vs ChatModel:开发者必须知道的4大区别!

王磊

天翼云“一云多芯”构建通算智算一体化混合云新范式!

天翼云开发者社区

云计算

听说大厂导师都在用这本书培养下属的结构化思维!

博文视点Broadview

《中国手机银行白皮书(2015-2024)》重磅发布:6亿用户崛起,手机银行十年蝶变!

易观分析

告别野路子代练!护航小程序源码系统上线:大神打手任选,交易安全有保障

DUOKE七七

MySQL uniapp thinkphp

C# 将 CSV 转化为 Excel

不在线第一只蜗牛

C#

谷歌地图代理 | 谷歌地图产品:赋能万物互联的智能地理平台

Cloud Ace 云一

警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践

阿里巴巴云原生

阿里云 云原生 可观测

一键制作精彩播客!扣子空间播客能力全新升级

火山引擎开发者社区

扣子

用 DeepSeek 自动化生成 Python 测试用例

测试人

活动邀请 | SECon 全球软件工程技术大会深圳站将于6月20—21日举办!

阿里巴巴云原生

阿里云 云原生

Excel包含文本的单元格,'=A1>0' 返回 TRUE,但 '=COUNTIF(A1, ">0")' 返回 0

柠檬与橘子

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