小编Bil*_*l B的帖子

与java相比,为什么这个C++代码执行速度如此之慢?

我最近用Java编写了一个计算密集型算法,然后将其翻译成C++.令我惊讶的是,C++的执行速度要慢得多.我现在编写了一个更短的Java测试程序,以及相应的C++程序 - 见下文.我的原始代码具有很多数组访问权限,测试代码也是如此.C++的执行时间要长5.5倍(请参阅每个程序末尾的注释).

结论在下面的 1 21条评论之后......

测试代码:

  1. g++ -o ... Java快5.5倍
  2. g++ -O3 -o ... Java快2.9倍
  3. g++ -fprofile-generate -march=native -O3 -o ...(运行,然后g++ -fprofile-use等)Java 1.07倍的速度.

我原来的项目(比测试代码复杂得多):

  1. Java快了1.8倍
  2. C++快了1.9倍
  3. C++快了2倍
Software environment:
    Ubuntu 16.04 (64 bit).
    Netbeans 8.2 / jdk 8u121 (java code executed inside netbeans)
    g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
    Compilation: g++ -o cpp_test cpp_test.cpp
Run Code Online (Sandbox Code Playgroud)

Java代码:

public class JavaTest {
    public static void main(String[] args) {
        final int ARRAY_LENGTH = 100;
        final int FINISH_TRIGGER = 100000000;
        int[] …
Run Code Online (Sandbox Code Playgroud)

c++ java performance

8
推荐指数
1
解决办法
478
查看次数

标签 统计

c++ ×1

java ×1

performance ×1