标题:C++、C#、Java、JavaScript之间的性能比较
Author:kagula
Date 2015-10-25
测试目的
想知道C++语言同其它常用语言在不针对硬件手动优化之前,默认性能差距是多少,
所以写了此文。
公共环境:
[1]Windows 10 professional 64bits
[2]Core i5-2500k
C++环境:
Visual Studio 2013 Update5
c++ console project(32位)
Platform Toolset: Visual Studio 2013 - Windows XP (v120_xp)
C#环境:
Visual Studio 2013 Update5
.Net framework 4.5
default c# console project
java环境:
jdk-7u67-windows-i586
eclipse-java-luna-SR2
JavaScript环境:
46.0.2490.71 (正式版本) m (32 位)
测试对象:
C++、C++ 编译器性能最大优化(Maximize Speed)、C#、Java、JavaScript
测试方式:
测试三次,取最小值,毫秒为单位。
C++ C#分别以Release方式运行。
Java以Run方式运行。
测试结果
测试用的源代码
C++源代码
Author:kagula
Date 2015-10-25
测试目的
想知道C++语言同其它常用语言在不针对硬件手动优化之前,默认性能差距是多少,
所以写了此文。
公共环境:
[1]Windows 10 professional 64bits
[2]Core i5-2500k
C++环境:
Visual Studio 2013 Update5
c++ console project(32位)
Platform Toolset: Visual Studio 2013 - Windows XP (v120_xp)
C#环境:
Visual Studio 2013 Update5
.Net framework 4.5
default c# console project
java环境:
jdk-7u67-windows-i586
eclipse-java-luna-SR2
JavaScript环境:
46.0.2490.71 (正式版本) m (32 位)
测试对象:
C++、C++ 编译器性能最大优化(Maximize Speed)、C#、Java、JavaScript
测试方式:
测试三次,取最小值,毫秒为单位。
C++ C#分别以Release方式运行。
Java以Run方式运行。
测试结果
数值越低越好。
总结
证实了我一直对C++性能的看法,如果不针对硬件(例如cpu 指令集,gpu)手动优化和其它语言比起来性能优势很少。
Microsoft compiler的自动优化很厉害,优化后,递归既然只用了0ms就返回了,后来反汇编后发现MS对这个函数根本就没调用。
让我意外的是java的性能比C#还强。
附:测试用的源代码
C++源代码
// FibonacciSequence.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <time.h>
#include <iostream>
using namespace std;
int FibonacciSequence(int item)
{
if (item == 0)
r