相关疑难解决方法(0)

C++性能与Java/C#

我的理解是C/C++生成在特定机器架构上运行的本机代码.相反,Java和C#等语言运行在虚拟机之上,该虚拟机将本机架构抽象化.逻辑上,由于这个中间步骤,Java或C#似乎不可能匹配C++的速度,但是我被告知最新的编译器("热点")可以达到这个速度甚至超过它.

也许这更像是一个编译问题,而不是一个语言问题,但任何人都可以用简单的英语解释这些虚拟机语言之一如何比母语更好地执行?

c# c++ java performance bytecode

119
推荐指数
9
解决办法
40万
查看次数

为什么Java似乎比C++执行速度更快 - 第2部分

介绍

这是我之前提到的问题的后续问题:Java似乎比C++更快地执行简单算法.为什么?.通过这篇文章,我学到了一些重要的东西:

  1. 我没有使用Ctrl + F5在Visual Studios C++ Express上编译和运行c ++代码,这导致了debuging减慢了代码执行速度.
  2. 向量与处理数据数组的指针一样好(如果不是更好).
  3. 我的C++很糟糕.^ _ ^
  4. 更好的执行时间测试是迭代,而不是递归.

我试着写一个更简单的程序,它不使用指针(或Java等价的数组),并且在执行时非常简单.即便如此,Java执行速度也比C++执行速度快.我究竟做错了什么?

码:

Java的:

 public class PerformanceTest2
 {
      public static void main(String args[])
      {
           //Number of iterations
           double iterations = 1E8;
           double temp;

           //Create the variables for timing
           double start;
           double end;
           double duration; //end - start

           //Run performance test
           System.out.println("Start");
           start = System.nanoTime();
           for(double i = 0;i < iterations;i += 1)
           {
                //Overhead and display
                temp = Math.log10(i);
                if(Math.round(temp) == temp)
                {
                     System.out.println(temp);
                } …
Run Code Online (Sandbox Code Playgroud)

c++ java visual-studio-2010 netbeans7.0

4
推荐指数
2
解决办法
1580
查看次数

标签 统计

c++ ×2

java ×2

bytecode ×1

c# ×1

netbeans7.0 ×1

performance ×1

visual-studio-2010 ×1