据说.NetCore效率很高?性能简单测试
来源:互联网 发布:淘宝跑腿办事 编辑:程序博客网 时间:2024/06/09 00:01
据说.NetCore效率很高?性能简单测试
本测试只测试了三项,分别是
- i++循环
- 冒泡排序
- 八皇后问题【提高到了12皇后】
测试了四个平台/编译器:
- .Net Core 1.1.0
- .Net Framework 4.5.2
- MinGW G++ 【具体版本未知,这个要怎么看啊】
- MSBuild 【VS2017带的那个,目标c++】
所有测试都用程序跑了10遍,get用时总和的,受环境影响,肯定有误差
测试程序代码:
#include <iostream>#include <ctime>using namespace std;int main (int argc, char *argv[]) { int s, e, i; long long int sum; if (argc < 2) return 0; cout << argv[1] << "||" << endl; sum = 0; for (i = 1; i <= 10; i++) { s = clock (); system (argv[1]); e = clock (); cout << i << " : " << e - s << endl; sum += e - s; } cout << "sum : " << sum << " avg : " << sum / 10 << endl; return 0;}
For循环测试代码:
c++:
#include <iostream>using namespace std;int main (void) { int i, j; for (j = 0; j < 2; j++) { for (i = 0; i < 200000000; i++); } return 0;}
c#【c#代码只放核心部分,顶上的一堆using和namespace、class就不放了】:
static void Main(string[] args) { int i, j; for (j = 0; j < 2; j++) { for (i = 0; i < 200000000; i++) ; }}
冒泡排序代码:
c++:
#include <iostream>using namespace std;int arr[10000] = {【为了屏蔽输入输出差异,我放了1w个值在这,就不往这放了,10000个数,。。。】};int arrlen = 10000;int main (void) { int i, j, t; for (i = arrlen - 1; i > 0; i--) { for (j = 0; j < i; j++) if (arr[j] > arr[j + 1]) { t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } // for (i = 0; i < arrlen; i++) { // cout << i << " " << arr[i] << endl; // } return 0;}
C#:
static int[] arr = new int[10000] {【这里同c++那块】};static void Main(string[] args) { int i, j, t; for (i = arr.Length - 1; i > 0; i--) { for (j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } } //for (i = 0; i < arr.Length; i++) { // System.Console.WriteLine("{0:0000} : {1}", i, arr[i]); //} //Console.ReadKey();}
12皇后:
c++:
#include <iostream>using namespace std;int lefts[64];int sum = 0;int noh = 8; // 皇后数量int check (int t, int l) { if (t == 0) return 1; for (int i = 0; i < t; i++) { if (lefts[i] == l) return 0; if (i + lefts[i] == t + l) return 0; if (i - lefts[i] == t - l) return 0; } if ((lefts[t - 1] == l - 1) || (lefts[t - 1] == l + 1)) return 0; return 1;}void DFS (int nowdeep) { if (nowdeep == noh) { sum++; return; } for (int i = 0; i < noh; i++) { if (check (nowdeep, i)) { lefts[nowdeep] = i; DFS (nowdeep + 1); } }}int main (void) { noh = 12; // 将皇后改为12只 sum = 0; DFS (0); cout << sum << endl; return 0;}
c#:
static int[] lefts = new int[64];static int sum = 0, noh = 8;static bool Check(int t, int l) { if (t == 0) return true; for (int i = 0; i < t; i++) { if (lefts[i] == l) return false; if (i + lefts[i] == t + l) return false; if (i - lefts[i] == t - l) return false; } if ((lefts[t - 1] == l - 1) || (lefts[t - 1] == l + 1)) return false; return true;}static void DFS(int nowdeep) { if (nowdeep == noh) { sum++; // for (int i = 0; i < noh; i++) cout << lefts[i]; // cout << endl; return; } for (int i = 0; i < noh; i++) { if (Check(nowdeep, i)) { lefts[nowdeep] = i; DFS(nowdeep + 1); } }}static void Main(string[] args) { noh = 12; DFS(0); Console.WriteLine(sum); //Console.ReadKey();}
测试结果:
本结果c++无优化,.Net也是Debug的配置下生成的
开启优化后测试
c++:O2【VS2017开启Release,优化级别也是O2】,.Net使用Release配置生成
来张图
Core:天塌下来我顶着!
这次测试的方向挺单一的说实话,仅做参考
0 0
- 据说.NetCore效率很高?性能简单测试
- GO,NODEJS,.NetCore性能对比
- Linux内核高性能测试工具pktgen的简单使用
- Go Web编程(Go语言性能好、语法简单、开发效率高!)
- netcore
- 排序算法效率简单测试
- 简单比较linq sort的效率,其实性能很低
- SQL语句执行效率及性能测试
- SQL语句执行效率及性能测试
- RUNSTATS_PKG 测试存储过程性能和效率
- SQL语句执行效率及性能测试
- SQL语句执行效率及性能测试
- twaver-flex效率与性能测试
- SQLServer语句执行效率及性能测试
- 高性能服务器(epoll测试)
- SQL性能 简单测试
- mysql性能简单测试
- 高性能计算-ICE 性能测试
- spring-spring mvc-mybatis 实现主从数据库配置
- 【蓝桥】 历届试题 带分数
- c++拷贝构造函数与赋值运算
- 基于SSM框架实现数据库的基本功能(一)
- shuffle()方法、removeAttribute() 方法、split()方法
- 据说.NetCore效率很高?性能简单测试
- 计算机网络1-计算机网络体系结构
- JavaScript脚本和JSON数据格式
- Javascript常用
- 【SDOI2015】bzoj3991 寻宝游戏
- 如何通过JQuery将DIV的滚动条滚动到指定的位置
- 6.3(fact方法捕获异常)求n!,阶乘值是byte类型
- 灰度处理,二值化,卷积滤镜等基本算法汇总
- java核心技术 程序清单4-5 ConstructorTest