指数
0
Watch 6 Star 6 Fork 0

Roby / CSharpVsCppMIT

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
C#与C++混合编程及性能分析 展开 收起

  • C# 50.6%
  • C++ 22.1%
  • JavaScript 8.6%
  • HTML 7.7%
  • C 7.6%
  • Other 3.4%
克隆/下载
Loading...
README.md

CSharpVsCpp

介绍

最近在看C#调用C++的相关接口问题,看到了一篇关于 C#与C++混合编程及性能分析 然后就有了该项目的测评,发现结果与作者的性能对比相反! 竟然C#是C++的执行效率的将近7倍! 故将代码贴出来给大家看看,帮忙分析原因。

看来我们要被常识打脸了!

运行环境说明

Microsoft Visual Studio Enterprise 2017 版本 15.9.6

对比性能图如下:

C#的结果:

10.Result: 1733793664 Elapsed: 942

9.Result: 1733793664 Elapsed: 884

8.Result: 1733793664 Elapsed: 850

7.Result: 1733793664 Elapsed: 892

6.Result: 1733793664 Elapsed: 858

5.Result: 1733793664 Elapsed: 892

4.Result: 1733793664 Elapsed: 883

3.Result: 1733793664 Elapsed: 917

2.Result: 1733793664 Elapsed: 835

1.Result: 1733793664 Elapsed: 877

共计:

8830

C++的结果:

10.Result: 1733793664 Elapsed: 4547

9.Result: 1733793664 Elapsed: 4750

8.Result: 1733793664 Elapsed: 4735

7.Result: 1733793664 Elapsed: 4796

6.Result: 1733793664 Elapsed: 4735

5.Result: 1733793664 Elapsed: 4813

4.Result: 1733793664 Elapsed: 4734

3.Result: 1733793664 Elapsed: 4703

2.Result: 1733793664 Elapsed: 4594

1.Result: 1733793664 Elapsed: 4563

总计:

46970

==============================

对比结果有点不可思议,C#比C++的执行效率还快很多,将近7倍!

==============================

将C++和C#的项目都切换到Release模式下编译,C++的代码速度瞬间提升上来了,而C#相对之前的Debug还略显慢个几十毫秒。

------------------------------

下面是对,C++代码,C#代码,C# DllImport调用C++ 代码的执行效率情况

(其中C#直接调用托管C++混合方式不行,能编译通过,但是一运行就报错)

搞了半天不知道为什么会报这个错?

扩展:.NetCore , Node.js,Python 环境

相同的执行代码逻辑,在保证运行结果一致的情况下,通过运行耗时看效率:C# dllImport的方式耗时最短,其次是node.js,最慢的是Python代码,无论从哪个环境下去执行都是最慢的!

点评 ( 8 )

你可以在登录后,发表评论

搜索帮助