java - 是否有 Java 与 C++ 的真实世界基准?

标签 java c++ performance benchmarking

<分区>

在我回答这个问题之前,请注意这个问题不是什么:

  • Java 比 C++ 慢(或快)吗?
  • 为什么 Java 比 C++ 慢(或快)?

这个问题不征求意见,它征求事实 -- 数字。

许多基准测试,例如 https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdfhttp://benchmarksgame.alioth.debian.org/测试一些合成的东西,比如 Mandelbrot,或者最多测试一个真实程序的一小部分,比如数组排序。当然,这不会像对整个应用程序进行基准测试那样产生具有代表性的数字。

那么,是否有使用真实、完整应用程序的基准测试,例如:

  • 笔记应用程序或文字处理器
  • 像 Google map 这样的 map 应用
  • 电子邮件客户端
  • 网络服务器

它必须是您每天使用的东西 - 一个完整的应用程序,而不是其中的一小部分,例如二叉树或排序数组。

任何性能测量都可以,无论是延迟还是吞吐量。谢谢。

最佳答案

简单的答案是否定的,我很想说它不是 甚至可能,至少在经济上。为此,您必须 与两个不同的团队实现同一个应用程序两次, 同时并行。即便如此:有多少 差异是由于语言,多少相对 团队能力等

归根结底,你无法比较“语言”的性能。 充其量,您可以比较语言的性能 实现,当特定程序员用于特定 任务。从某种意义上说,您感兴趣的是: 你必须和你的程序员一起实现一个特定的应用程序 有和可用的语言实现 你。即使有你寻求的比较,它 不会帮助你太多,因为你会实现 具有不同程序员组的不同应用程序 (他们的技能可能与那些 实现基准)。虽然不同的语言可以 具有使优化或多或少的特征 总的来说,在较大的应用程序中很难(如 与综合基准相反),这些往往被 大的考虑,或被其他特征所抵消 也影响优化:C/C++ 的指针语义是 优化器的祸根;另一方面,优化 Java 将 需要大量的拳击,这也不是微不足道的。 (总的来说: 最容易优化的语言可能是 Fortran。不是 因为语言中固有的任何东西,但是因为 研究人员研究它的时间最长,而且许多 必要的优化技术已成为主流。)

如果你真的担心,你必须让程序员 可供您根据模式编写自己的基准 在您的应用程序中,并由您的程序员实现。

最后:很多真实的应用程序,包括单词之类的东西 处理器、电子邮件客户端或 Web 服务器是 IO 绑定(bind)的;他们的 性能更多地取决于 IO 的速度而不是其他任何东西。 (对于我工作过的大多数大型服务器,我们没有 甚至懒得打开优化器。尽管事实上 他们时间紧迫; CPU 时间只是没有 影响。)

关于java - 是否有 Java 与 C++ 的真实世界基准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19444639/

相关文章:

java - 使用 Java + 正则表达式从文本文档中提取 URL

Java反射

java - 正则表达式性能 java vs c++11

java - 协议(protocol)处理程序启动失败的 Spring Boot SSL 应用程序

c++ - 使用 omp 生成矩阵会导致麻烦,不同的 columsizes

c++ - 将参数定义为未指定的模板类型

c++ - 序列化所需的公共(public)空构造函数

performance - 时间复杂度 - 计算算法的最坏情况

performance - 填充列表的是Scala,永远随机抽取两次

java - Selenium 3.0 Firefx 驱动程序失败,出现 org.openqa.selenium.SessionNotCreatedException : Unable to create new remote session