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



c#转java (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. (或线程。)看到报告提到这一点会很有趣,对吧?

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


Answer #1

这是一个关于这个主题的最新研究

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

Peter Sestoft([email protected]

IT丹麦哥本哈根大学

版本0.9.1 of 2010-02-19

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

...


Answer #2

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

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






benchmarking