为什么 Java 优于 C++

问题描述 投票:0回答:1

Java 和 C++ 中的两个嵌套循环,每个循环 100000 次。一致地观察到,Java 的性能优于 C++。 C++ 花费了 3.26 秒,而 Java 花费了 0.019 秒。这能解释一下吗?

请参阅以下两个代码片段。

int main() {
  for (int i = 0; i < 100000; i++) {
    for (int j = 0; j < 100000; j++);
  }
  return 0;
}
class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 100000; i++) {
      for (int j = 0; j < 100000; j++);
    }
  }
}

第一个代码是 C++ 代码,第二个代码是 Java 代码。第一个预计会更快。

java c++
1个回答
0
投票

我可以举一些不适合评论的例子——已经确定你需要优化。以下是一些示例:

#include <boost/timer/timer.hpp>

int main() {
  boost::timer::auto_cpu_timer timer;
  for (int i = 0; i < 10000; i++) {
    for (int j = 0; j < 10000; j++);
  }
  return 0;
}

是的,我减少了计数,这样我就可以在还活着的时候完成这篇文章。

stieber@gatekeeper:~ $ g++ Test.cpp -lboost_timer && ./a.out
 0.532601s wall, 0.520000s user + 0.000000s system = 0.520000s CPU (97.6%)
stieber@gatekeeper:~ $ g++ -O3 Test.cpp -lboost_timer && ./a.out
 0.000008s wall, 0.000000s user + 0.000000s system = 0.000000s CPU (n/a%)

这不是一个比较任何东西的好例子,因为任何像样的编译器,无论语言如何,都会优化整个事情......

© www.soinside.com 2019 - 2024. All rights reserved.