【问题标题】:C++ versus Java performance [closed]C ++与Java性能[关闭]
【发布时间】:2011-08-04 12:13:43
【问题描述】:

理论上说,您只需在 [受硬件约束] 的尽可能多的线程中 [使用标准库] 生成随机数。 C++ 在 Java 上的速度有多快?

没有磁盘 i/o、内存或 gc。只是纯 Math.random() 跨线程调用。

【问题讨论】:

  • 这一般是无法回答的。使用什么硬件平台、编译器、JVM 版本、编译和运行时参数……?如果你已经定义了所有这些,恕我直言,最好还是自己衡量一下......
  • 一个非常普遍的速度比较是 C++ 比 Java 快 10 倍,但差异很大。
  • @Cray,这在(遥远的)过去的某个时候是正确的,但 AFAIK 不再是(多年以来)。关于纯数学功能,据说 C++ 仍然明显更快,但远未达到 10 倍。而在其他一些领域和场景中,Java 甚至可以超越 C++。另见stackoverflow.com/questions/2163411/…
  • 根据我的经验:C++ 快 2-3 倍。如果您能够使用 SSE/AVX 或其他特定于硬件的专业,则可能会更多。
  • 没有理论上的答案——只有通过测量确定的答案。我倾向于相信以下内容:shootout.alioth.debian.org/u32/…

标签: java c++ performance math prng


【解决方案1】:

取决于硬件、操作系统和许多其他因素...我认为这是一个很难回答的问题,因为涉及的变量太多。为什么不测试一下?

【讨论】:

    【解决方案2】:

    测试一下。 请注意,Java 性能在运行时以上并不是静态的。因为它可以使用热点编译器,该编译器检测到热点之后对其进行编译。

    【讨论】:

      【解决方案3】:

      在您将要部署的环境中进行测试。

      【讨论】:

      • 并带有逼真的程序。编写“证明”一个比另一个更好的基准是相当容易的。对于双方。
      • 或者重复我很久以前听到的一句话:永远不要相信你自己没有伪造的基准。
      猜你喜欢
      • 2013-12-01
      • 2015-07-08
      • 1970-01-01
      • 2013-10-16
      • 2013-01-05
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 2021-01-02
      相关资源
      最近更新 更多