Java vs C#:有没有比较执行速度的研究?

时间:2009-06-26 13:00:48

标签: c# java .net benchmarking

取出与基准和基准比较相关的所有明显的警告,是否有任何研究(一系列记录良好且无偏见的测试)比较两种语言的平均执行速度? 感谢

5 个答案:

答案 0 :(得分:23)

我所知道的最佳比较是The Computer Language Benchmarks Game

它将(当前)10个基准测试的速度,内存使用和源代码大小与大量编程语言进行比较。基准测试的实现是用户提交的,并且有持续的改进,因此排名有所改变。

比较目前是openjdk vs C#.NET Core。

Currently it is close, but .NET Core is slightly faster on most benchmarks

答案 1 :(得分:10)

这是关于这个主题的nice recent study

  

C,C#和Java中的数字性能

     

Peter Sestoft(sestoft@itu.dk)

     

丹麦哥本哈根IT大学

     

2010-02-19版本0.9.1

     

摘要:我们比较了数字性能   三个小案例中的C,C#和Java。

     

...

答案 2 :(得分:6)

两种语言在性能方面都在不断发展。至少在2013年,微软自己的Joe Duffy blogged

  

Java比C#更接近[C ++的性能],这要归功于使用代码投放和堆栈分配的类似HotSpot的VM的出色工作。

答案 3 :(得分:4)

这可能会引发一场火焰战,但是嘿,这是我的看法......首先,如果你的网站运行得太慢,你需要更好的硬件。或者更多硬件并为您的站点添加负载平衡。如果你是谷歌,那么你最终会得到拥有数千台机器的庞大服务器群,这些机器似乎能提供闪电般快速的性能,即使这些网站本身是用一些过时的语言开发的。大多数语言都是经过优化,可以从硬件中获得最佳效果,并且在特定环境中通过特定设置优于任何其他语言。比较语言没有多大意义,因为有数千种技术可以进一步优化它们。此外,您如何衡量性能开始?
让我们说你看看执行速度。语言X可能比语言Y快2倍地执行某些任务。但是,语言Y更适合于运行多个线程,并且在相同的时间内可以比语言X服务10倍的用户。结合这一点,Y在客户端/服务器环境中会更快。
然后将X安装在一个优化的系统上,该系统具有X喜欢的操作系统,附加的硬件,数十亿字节的内存和磁盘空间以及十几个CPU和X会再次击败Y.
那么,了解语言执行速度的价值是什么?甚至比较语言?我们怎么知道创建报告的人没有偏见?我们如何确定他们为每种语言使用了最佳设置?他们甚至编写了最优化的代码进行测试吗?那么你如何比较最终结果呢?每个用户的执行时间?或总执行时间?
回到语言X和Y.X在2秒内运行一个任务,但它同时只支持10个线程,因此有10个用户。 Y需要6秒,但同时最多可以提供50个线程。每个用户X会更快。在两秒钟内,X已经处理了10个用户。在6秒内,X已经处理了30个用户。但到那时Y会处理50个用户。因此,当你拥有大量用户时,Y会胜过X,而X会以较少的用户数超出Y. (或线程。)看到报告提到这一点会很有趣,对吗?

答案 4 :(得分:-1)

2021

概述

多年来,使用 Java 或 .NET/C# 创建的应用程序具有相似的性能水平。不过,微软和许多第三方贡献者在这方面的优化上做了一些重大的投资,并不断改进。例如,ASP.NET Core Web 框架允许您在单个服务器上每秒处理 700 万个请求。根据 TechEmpower 测试,ASP.NET Core 远远领先于任何 Java Web 框架。

研究

https://github.com/ixy-languages/ixy-languages

这是在 .NET 平台上可以实现的性能的另一个很好的演示——一个用不同语言编写的超快速网络驱动程序的例子。用 C# 编写的驱动程序显示出与 C 和 Rust 几乎相同的性能水平,略优于 Go 语言,并且领先于包括 Java 在内的所有其他高级语言。

Source