评测报告:.NET的性能仍然远远落后于Java

FreeRTOS笔记(十五)FreeRTOS总结 文章目录01 - 裸机和FreeRTOS区别1.1 - 裸机1.2 - FreeRTOS1.3 - 区别02 - 对FreeRTOS的感受03 - 推荐 上一文链接:FreeRTOS笔记(十四)[简] 软件定时器、事件组、任务通知 01 - 裸机和FreeRTOS区别   学完FreeRTOS,应该要自己总结一下FreeRTOS和裸机的区别,宏观上说,FreeRTOS是一个运行在裸机上的微内核,... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 每个人都看过各种不同的benchmark,有证明.NET比Java快的,也有证明Java比.NET快的。在某些人的手里,benchmark是一面魔镜,透过它能看到想看的东西。所以,当这位名为Cameron的先生要开始在.NET和Java之间做一个benchmark时,他认为自己就是在浪费时间,因为肯定会有人来证明.NET比Java快。 顺便地,Cameron先生提出了10条“不要用于在.NET和Java之间做选择”的理由,其中包括: Ø 在某一组特定的benchmark中,某一个比另一个快一点; Ø Microsoft或Sun(或者Oracle、IBM……)的报告说其中一个比另一个好得多; Ø 你喜欢(或不喜欢)Bill Gates或者Scott McNeally(或者Larry Ellison); Ø 你认为Microsoft或者Sun(或者IBM或者Oracle)很邪恶(或者很伟大); Ø 你在TheServerSide.com或者GotDotNet.com(或者Microsoft.com)读了一篇“没有偏见”的文章; 实际上,这次benchmark源于Cameron与tRolf两人在TheServerSide.com网站的一次关于Web服务性能的争吵(http://www.theserverside.com/reviews/thread.jsp?thread_id=19226)。在这次的benchmark中,Cameron测试了下列版本: .NET 1.0sp2: Microsoft (R) Visual C# .NET Compiler version 7.00.9466 for Microsoft (R) .NET Framework version 1.0.3705 Copyright (C) Microsoft Corporation 2001. All rights reserved. .NET 1.1: Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4 for Microsoft (R) .NET Framework version 1.1.4322 Copyright (C) Microsoft Corporation 2001-2002. All rights reserved. Sun Hotspot Server JVM from JDK 1.3.1_04: java version "1.3.1_04" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_04-b02) Java HotSpot(TM) Server VM (build 1.3.1_04-b02, mixed mode) Sun Hotspot Server JVM from JDK 1.4.0_02: java version "1.4.0_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_02-b02) Java HotSpot(TM) Server VM (build 1.4.0_02-b02, mixed mode) Sun Hotspot Server JVM from JDK 1.4.1_02: java version "1.4.1_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06) Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode) 在代码方面,Cameron主要选择了大量ArrayList来进行测试。下列是他的测试代码: C# // C# Create 100,000 people in an ArrayList and access them using System; using System.Collections; public class ManyPeople { public static void Main() { for (int i = 0; i < 100; i ) test(i); } public static void test(int iIter) { DateTime start = DateTime.Now; for (int i = 0; i < 20; i ) new ManyPeople().Average(); DateTime finish = DateTime.Now; Console.WriteLine("Total time for iteration " iIter ": " (finish - start)); } private long Average() { ArrayList list = new ArrayList(100000); for (int i = 0; i < 100000; i ) list.Add(new Person(i, "John " i)); long silly = 0; foreach (Person p in list) silly = p.Id; return silly / 100000; } } // Person.cs: a very simple guy public class Person { int id; string name; public Person(int anId, string aName) { this.id = anId; this.name = aName; } public int Id { get { return this.id; } } } Java: // Java Create 100,000 people in an ArrayList and access them import java.util.*; public class ManyPeople { public static void main(String[] args) { for (int i = 0; i < 100; i ) test(i); } public static void test(int iIter) { long start = System.currentTimeMillis(); for (int i = 0; i < 20; i ) new ManyPeople().average(); long finish = System.currentTimeMillis(); System.out.println("Total time for iteration " iIter ": " (finish - start)); } private long average() { ArrayList list = new ArrayList(100000); for (int i = 0; i < 100000; i ) list.add(new Person(i, "John " i)); long silly = 0; for (int i = 0; i < 100000; i ) silly = ((Person)list.get(i)).getId(); return silly; } } // Person.java: a very simple guy class Person { private int id; private String name; public Person(int anId, String aName) { this.id = anId; this.name = aName; } public int getId() { return this.id; } } Cameron所用的测试机器是P3 1GHz、1G内存的笔记本,操作系统是Windows 2000 SP2。下列是在.NET上测试的结果(取最好的6次): .NET 1.0sp2: ManyPeople Total time for iteration 0: 00:00:07.3004976 Total time for iteration 1: 00:00:07.0501376 Total time for iteration 2: 00:00:07.2504256 Total time for iteration 3: 00:00:07.7311168 Total time for iteration 4: 00:00:07.5007856 Total time for iteration 5: 00:00:07.5007856 .NET 1.1: ManyPeople Total time for iteration 0: 00:00:08.0916352 Total time for iteration 1: 00:00:08.5222544 Total time for iteration 2: 00:00:08.3520096 Total time for iteration 3: 00:00:08.6324128 Total time for iteration 4: 00:00:08.3419952 Total time for iteration 5: 00:00:08.1617360 可以看到,同样的代码在.NET 1.1上比.NET 1.0 SP2上慢了大约15%。这是一个很奇怪的现象。并且,Cameron观察到,.NET上同样代码的运行速度并不随运行次数的增加而提高,说明.NET CLR只是简单地进行了JIT编译。而在Hotspot Server上,不仅开始时的性能就有优势,而且速度还会不断提高: Sun Hotspot Server JVM from JDK 1.4.1_02: java -server -Xms128m -Xmx128m ManyPeople Total time for iteration 0: 6370 Total time for iteration 1: 5788 Total time for iteration 2: 5868 Total time for iteration 3: 6029 Total time for iteration 4: 5748 Total time for iteration 5: 5738 Total time for iteration 6: 5729 Total time for iteration 7: 5948 Total time for iteration 8: 5688 Total time for iteration 9: 5679 Total time for iteration 10: 5658 Total time for iteration 11: 6028 Total time for iteration 12: 5699 Total time for iteration 13: 5708 Total time for iteration 14: 5678 Total time for iteration 15: 5969 Total time for iteration 16: 5628 Total time for iteration 17: 5538 Total time for iteration 18: 5608 Total time for iteration 19: 5498 Total time for iteration 20: 5768 Total time for iteration 21: 5518 Total time for iteration 22: 5307 Total time for iteration 23: 4247 Total time for iteration 24: 4696 Total time for iteration 25: 4617 Total time for iteration 26: 4777 Total time for iteration 27: 4286 Total time for iteration 28: 4677 Total time for iteration 29: 4626 Total time for iteration 30: 4697 Total time for iteration 31: 4286 Total time for iteration 32: 4697 Total time for iteration 33: 4617 Total time for iteration 34: 4696 Total time for iteration 35: 4307 Total time for iteration 36: 4686 Total time for iteration 37: 4807 Total time for iteration 38: 4517 Total time for iteration 39: 4306 Total time for iteration 40: 4657 Total time for iteration 41: 4807 Total time for iteration 42: 4596 Total time for iteration 43: 4206 Total time for iteration 44: 4777 Total time for iteration 45: 4717 Total time for iteration 46: 4607 Total time for iteration 47: 4196 Total time for iteration 48: 4796 Total time for iteration 49: 4707 Total time for iteration 50: 4777 Total time for iteration 51: 4196 Total time for iteration 52: 4627 Total time for iteration 53: 4687 Total time for iteration 54: 4806 Total time for iteration 55: 4186 Total time for iteration 56: 4627 Total time for iteration 57: 4697 Total time for iteration 58: 4807 Total time for iteration 59: 4166 Total time for iteration 60: 4616 Total time for iteration 61: 4697 Total time for iteration 62: 4717 Total time for iteration 63: 4346 Total time for iteration 64: 4717 Total time for iteration 65: 4617 Total time for iteration 66: 4626 Total time for iteration 67: 4367 Total time for iteration 68: 4706 Total time for iteration 69: 4617 Total time for iteration 70: 4617 Total time for iteration 71: 4366 Total time for iteration 72: 4687 Total time for iteration 73: 4616 Total time for iteration 74: 4196 Total time for iteration 75: 4787 Total time for iteration 76: 4687 Total time for iteration 77: 4807 Total time for iteration 78: 4436 Total time for iteration 79: 4387 Total time for iteration 80: 4676 Total time for iteration 81: 4807 Total time for iteration 82: 4417 Total time for iteration 83: 4296 Total time for iteration 84: 4686 Total time for iteration 85: 4797 Total time for iteration 86: 4266 Total time for iteration 87: 4697 Total time for iteration 88: 4617 Total time for iteration 89: 4717 Total time for iteration 90: 4276 Total time for iteration 91: 4707 Total time for iteration 92: 4616 Total time for iteration 93: 4697 Total time for iteration 94: 4296 Total time for iteration 95: 4677 Total time for iteration 96: 4546 Total time for iteration 97: 4697 Total time for iteration 98: 4296 Total time for iteration 99: 4677 可以看到,随着运行次数的增加,Sun Hotspot Server不断将领先优势拉大,最后几乎比.NET 1.1快了一倍。.NET CLR始终无法将运行时间降低到8秒以下,而Sun Hotspot Server在多次运行之后则可以保持在5秒以下。因此,Cameron认为,对于大运算量的应用程序,Hotspot JVM比Microsoft CLR要快得多。 原文及完整的benchmark数据请看Cameron的blog: http://www.freeroller.net/page/cpurdy/20030516
CodeQL查询时遇到报错:A fatal error occurred: Could not process query metadata for...如何解决? 🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀! 阅读详情

相关推荐

从可用性到情感共鸣:构建下一代人机交互的智能伙伴

本文探讨了人机交互从功能满足到情感共鸣的范式转变,分析了情感计算的三大技术支柱——多模态感知网络、上下文感知引擎和情感生成模型,并展示了医疗健康、教育领域和智能家居等垂直场景的落地实践。文章还提出了设计下一代交互系统的五个原则,为构建更智能、更具情感共鸣的人机交互伙伴提供了实用指导。

weixin_29073241的博客 245

.NET 9 发布了,有哪些令人激动的特性?

NET 9 是微软宣布的最新版本,它被认为是迄今为止最高效、最现代、最安全、最智能、性能最高的 .NET 版本。

软件行业技术文化交流。 2510

Ubuntu22.04+Docker一键部署Autoware Universe避坑指南(附鱼香ROS配置)

本文详细介绍了在Ubuntu22.04系统中使用Docker一键部署Autoware Universe的完整流程,包括鱼香ROS工具链配置、Docker环境优化及VSCode开发环境集成。通过实战指南帮助开发者快速搭建自动驾驶开发环境,解决常见部署问题,提升开发效率。

weixin_29254673的博客 417

.NET 9 技术革新,新特性概览

NET 9 作为微软推出的最新框架版本,无疑为开发者带来了一系列的新特性,继.NET 8 之后,.NET 9 在云原生应用程序得到了增强和性能得到提升。它是STS版本,将获得为期18个月的标准支持服务。这些新特性究竟有多新颖?它们将如何影响我们的开发实践?本文将探讨.NET 9 的几个关键新特性,可以到官网下载.NET 9。.NET 9引入了针对云原生应用和性能优化的重大增强。通过对序列化、LINQ改进和加密方面的关注,开发人员可以利用新功能和API来简化开发流程并增强应用程序安全性。

DotNet技术匠 2028

基于N32G003的PMBus从机协议栈设计与STM32F103模拟I2C主机通信实战

本文详细介绍了基于N32G003微控制器设计PMBus从机协议栈,并与STM32F103模拟I2C主机进行通信的实战方案。重点阐述了中断驱动架构、命令解析、CRC8优化及超时恢复机制,实现了在70kHz速率下稳定可靠的工业电源管理通信,适用于服务器电源、通信基站等成本敏感应用场景。

numpy6sculptor的博客 920

使用 DeepSeek 配合 即梦AI 生成视频的详细教程

访问即梦AI官网,选择“AI作图”功能,将DeepSeek生成的提示词逐条粘贴至输入框,选择适配的模型(如“通用XL Pro”)和参数(如画幅比例、风格强度)1113。“我要制作一个关于普洱茶文化的宣传视频,请设计一个30秒的脚本,包含时间轴、画面描述、文案和分镜提示词,以表格形式输出。:云南古茶树群,清晨薄雾,金色晨光,露珠特写,国风山水画质感,16:9画幅,使用Nikon D850参数模拟513。:结合DeepSeek生成的知识点脚本与即梦AI的插画风格,制作科普动画211。

weixin_48995695的博客 3万+

.NET 9中的异常处理性能提升分析:为什么过去慢,未来快

NET 9通过彻底拥抱NativeAOT极简式的托管异常处理体系,把历史包袱(OS-Specific/C++ Exception Bridge/冗余链表&锁/多次catch-rethrow)一举清除,大幅释放了异常路径的性能潜力。这一变革支撑了.NET在微服务、云原生、异步并发等新主流场景下的顶级运行时表现。未来,随着堆栈展开、元数据cache自适应等不断迭代,.NET有望成为托管平台的异常处理性能“天花板”。

InCerry的博客 1053

STM32 HAL PWM (占空比) -电机软启动不到位解决

为了避免电机启动电压大造成设备损坏,或者供电不足导致重启,通常在对启动都需要一个PWM进行软启动,下面对PWM电机软启动详细介绍。

weixin_44597885的博客 868

.NET 9震撼来袭:基于.NET 8的五大功能亮点,引领开发新潮流

NET 9基于.NET 8的五大功能亮点,为开发者带来了更高的性能、更便捷的语法、更强的云原生支持、更安全的开发环境和更完善的跨平台能力。相信在.NET 9的助力下,我国开发者将能够创造出更多优秀的产品,推动我国软件产业迈向新的高峰。全新的.NET 9基于.NET 8构建,为开发者带来了诸多创新功能,进一步提升了开发效率、应用性能和安全性。今天,让我们一起来盘点.NET 9在.NET 8基础上的五大功能亮点。.NET 9在.NET 8的基础上,对编译器和运行时进行了深度优化,实现了更高的性能。

滴水成河,汇流成海 1355

Linux加密框架中的算法和算法模式(1)——算法介绍

算法和算法模式

yangguoyu8023的博客 2033

关于IBV_WR_RDMA_WRITE_WITH_IMM的理解

对于IBV_WC_RECV_RDMA_WITH_IMM的描述是这样的,也就是说并不需要sge,所以下发的sge,可以是NULL,个数可以是0。(1)需要下发post_recv,但是下发是post_recv当中的sge的地址可以是空,sge个数可以是0。伪代码,实际的rkey和addr已经通过socket交换。并且poll_cq时,有返回,在这篇文章当中对于poll_cq时,主要区别点有两个,这个是对于接收端而言。(2)可以带即时数据,

qq_38158479的博客 2422

他来了,他来了,他带着新功能走来了!.NET 9 和 C# 13:新增功能和改进

随着 .NET 9 和 C# 13 的推出,.NET 平台和C# 语言的开发向前推进,引入了一系列增强功能和改进,以提高开发人员的效率、速度和安全性。本文深入探讨了这些版本中的升级和新功能,让开发人员详细了解。图片由Microsoft提供.NET 9.NET 9 对 .NET 生态系统进行了一系列改进,重点关注 AI 和通过发布 .NET Aspire 构建云原生...

925

RTA_OS基础功能讲解 2.6-资源锁和自旋锁

访问需要在任务和 ISR 之间共享的硬件或数据可能不可靠、不安全。这是因为当优先级较低的任务或 ISR 正在更新共享数据时,可能会发生任务或 ISR 抢占。这种情况被称为竞争条件,极难测试。访问共享数据的语句序列称为关键部分。要安全访问关键部分中引用的代码和数据,就需要执行互斥。换句话说,必须确保系统中没有其他任务或第 2 类 ISR 能够在关键部分期间抢占正在执行的任务。你可以将任务声明为非抢占式任务,这样就可以避免互斥问题。

本博客专注于嵌入式软件领域技术分享。 291

java .net 性能,评测报告:.NET的性能仍然远远落后于Java (转)

评测报告:.NET的性能仍然远远落后于Java (转)[@more@]评测报告:的仍然远远落后于:namespace prefix = o ns = "urn:schemas--com::office" />每个人都看过各种不同的benchmark,有证明.NET比Java快的,也有证明Java比.NET快的。在某些人的手里,benchmark是一面魔镜,透过它能看到想看的东西。所以,当这位...

weixin_33279554的博客 1779

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

评测报告:.NET的性能仍然远远落后于Java (转)

评测报告:.NET的性能仍然远远落后于Java (转)[@more@]评测报告:.NET的性能仍然远远落后于JavaXML:namespace prefix = o ns = "urn:schemas-microsoft-com...

ciya3282的博客 253

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java不如.NET------Java的跨平台就是一句谎言

实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限

简单爱你心所爱…… 1426

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

一起谈.NET技术,.NET平台上的JavaScript引擎

  长久以来,在.NET平台上只能通过JScript.NET执行ECMAScript/JavaScript代码,但是该项目一直是.NET语言中的二等公民,甚至Mono中的对应项目也已经无人维护。不过在JScript.NET逐渐淡出人们视线的时候,.NET平台上也出现了一些新的JavaScript执行引擎,虽不完善,但值得关注。   Jint是一个相对较早的纯托管代码实现的JavaScript执行引...

weixin_34377919的博客 140

Java几款性能分析工具的对比

为什么80%的码农都做不了架构师?>>> ...

weixin_33755557的博客 206

Spring Boot构建交通竞赛管理系统:从业务场景到技术落地的实战指南

在软件开发领域,理解业务场景是系统设计的基石,而Spring Boot作为Java生态中广受欢迎的应用框架,为快速构建企业级应用提供了强大支持。其核心原理在于通过约定大于配置和自动装配机制,简化了传统Spring应用的初始搭建和开发过程,显著提升了开发效率。在工程实践中,结合消息队列实现异步处理、利用对象存储管理非结构化数据,是构建高可用、可扩展系统的关键技术手段。这些技术的价值在于能够有效解耦系统组件、应对高并发场景,并支撑海量数据的可靠存储。特别是在交通、金融等垂直领域的应用系统开发中,技术选型必须紧密

cuiji1279的博客 406

JS学习十四天----server端运行JS代码

server端运行JS代码 话说,当今不在client使用JS代码才是稀罕事.因为web应用的体验越来越丰富,client用JS实现的逻辑也越来越多,这造成的结果就是某些差点儿一致的逻辑须要在client和服务端各实现一遍,大牛们当然不甘心啊!幸运的是,我们能够在server端运行JS代码,谁让JS抱了一根大腿呢... 比如,现在在client使用JS进行验证已经是个标准,他能够有效避...

weixin_34050389的博客 518

JS学习十四天----服务器端执行JS代码

服务器端执行JS代码 话说,当今不在客户端使用JS代码才是稀罕事.由于web应用的体验越来越丰富,客户端用JS实现的逻辑也越来越多,这造成的结果就是某些几乎一致的逻辑需要在客户端和服务端各实现一遍,大牛们当然不甘心啊!幸运的是,我们可以在服务器端执行JS代码,谁让JS抱了一根大腿呢... 例如,如今在客户端使用JS进行验证已经是个标准,他可以有效避免用户在正常情况下提交错误的数据,增强用户体验

见证大牛成长之路的专栏 5164

python自动测试s_用 Python 开启测试自动化的未来

使用 Python 脚本迈进先进的测试自动化技术传统上,测试自动化工程师都是使用 shell 脚本和自主开发的工具进行自动测试。现在,测试团队可以使用 Python 软件更轻松、更稳健地完成他们的测试方案。 强大的Python 工具和程序库:• Pytest:一个极为通用的 Python 测试框架• NumPy:一个提供多维阵列和高层数学函数的程序库• SciPy:一个利用大量算法来扩展 NumP...

weixin_39603823的博客 305
上一篇: Java技术实现数据库应用系统慨述
下一篇: 关于用JAVA开发短信方面的知识
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值