硬核干货——《中小企业 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:501798
用户头像

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

关注

评论

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

【堡垒机】北京堡垒机品牌哪家好?优势有哪些?

行云管家

堡垒机 IT运维 北京

进阶篇丨链路追踪(Tracing)很简单:链路成本指南

阿里巴巴云原生

阿里云 云原生 链路追踪

线程池性能提升之道:核心线程数选择与定制实战

Java 多线程 线程池

jvm中类和对象定义存储基础知识 | 京东云技术团队

京东科技开发者

Java JVM 虚拟机 企业号 6 月 PK 榜 对象定义存储

MobPush 配置应用包名

MobTech袤博科技

AntDB数据库入选艾媒金榜《2023年中国信创数据库企业TOP15》,位列前三

亚信AntDB数据库

AntDB 数据库· AntDB数据库 企业号 6 月 PK 榜

软件测试/测试开发丨学习笔记Allure2添加用例标题、用例步骤

测试人

程序员 软件测试 测试开发 测试报告 Allure

【体验有奖】玩转 AIGC,函数计算 x 通义千问预体验,一键部署 AI 应用赢 Airpods

阿里巴巴云原生

阿里云 云原生 AIGC

立即报名 | Microservices June 微服务之月再度开启

NGINX开源社区

nginx 微服务

什么是CAS和ABA问题?如何解决?

javacn.site

“古老”编程语言的最新选择!华为云发布CodeArts IDE for C/C++

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

Github127k点赞!堪称最强 Java面试指南!已跳槽字节涨15K

Java java面试 Java八股文 Java面试题 Java面试八股文

面试官:什么时候 MySQL 查询会变慢?

Java MySQL 数据库

基于STM32+RC522设计的门禁系统

DS小龙哥

6 月 优质更文活动

Serverless: AI everywhere的下一块拼图

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

山东淄博市具有资质的等保测评机构有几家?咨询电话多少?

行云管家

等保 等级测评 淄博

Java面试卷到家了?分享经典Java万字笔记,查漏补缺,备战面试

Java java面试 Java八股文 Java面试题 Java面试八股文

Flink实例:处理IoT事件流

TiAmo

IoT Flink实例 事件流 6 月 优质更文活动

BH1750 传感器实战教学 —— 驱动移植篇

矜辰所致

传感器 I2C 6 月 优质更文活动

不止于快!巨湾技研发布凤凰电池技术,可实现全气候全电压平台极速充电

科技热闻

GreatSQL删除分区慢的跟踪

GreatSQL

greatsql greatsql社区

Maxcompute数据上云一致性比对

阿里云大数据AI技术

大数据 数据集 企业号 6 月 PK 榜

直播平台源码画面质量功能的实现

山东布谷科技

软件开发、 云算力模式系统开发源码 源码解读 直播系统 直播平台源码

当“代码农”遇上“码农”:揭秘主干开发的那些事儿 | 京东云技术团队

京东科技开发者

敏捷开发 单元测试 代码评审 主干开发 企业号 6 月 PK 榜

如何从抓包文件中分析慢请求

蓝胖子的编程梦

Wireshark tcpdump 抓包 网络抓包 抓包分析

Adobe 构建 IDP 之路的经验与教训

SEAL安全

IdP adobe 平台工程

跨端框架的兴起:WePY(微信小程序容器技术)

没有用户名丶

深入理解Java线程池:线程池参数调优与技巧

xfgg

Java 线程池 6 月 优质更文活动

慢 SQL 优化之索引的作用是什么? | 京东云技术团队

京东科技开发者

MySQL 数据库 innodb 慢SQL 企业号 6 月 PK 榜

什么时候 MySQL 查询会变慢?

江南一点雨

MySQL 数据库

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