2017年的golang、python、php、c++、c、java、Nodejs性能对比[续]
2017年的golang、python、php、c++、c、java、Nodejs性能对比[续]
好了,上回的某些事有些人有异议,今天也回应下。
1.有人说python性能没那么Low?
这个我用pypy 2.7确认了下,确实没那么差, 如果用numpy或其他版本python的话,性能更快。但pypy还不完善,pypy3在beta, 所以一般情况,我是说一般情况下,这点比较让人不爽。
qiangjian@sun-pro:/works/learnCPP$ pypy -V && time pypy fib.py
Python 2.7.12 (aff251e54385, Nov 09 2016, 17:25:49)
[PyPy 5.6.0 with GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]
5702887
real 0m0.206s
user 0m0.173s
sys 0m0.028s
2.有人说怎么没有C#、Rust、Ruby这个那个的?
我只想说语言百千万,实在太多,但精力不要放在工具上, 选择一个合适的就好。
实在想看,也有:
Language |
CPU time |
Slower than |
Languageversion |
Sourcecode |
|||
---|---|---|---|---|---|---|---|
User |
System |
Total |
C++ |
previous |
|||
C++ (optimized with -O2) |
0.899 |
0.053 |
0.951 |
– |
– |
g++ 6.1.1 |
link |
Rust |
0.898 |
0.129 |
1.026 |
7% |
7% |
1.12.0 |
link |
Java 8 (non-std lib) |
1.090 |
0.006 |
1.096 |
15% |
6% |
1.8.0_102 |
link |
Python 2.7 + PyPy |
1.376 |
0.120 |
1.496 |
57% |
36% |
PyPy 5.4.1 |
link |
C# .NET Core Linux |
1.583 |
0.112 |
1.695 |
78% |
13% |
1.0.0-preview2 |
link |
Javascript (nodejs) |
1.371 |
0.466 |
1.837 |
93% |
8% |
4.3.1 |
link |
Go |
2.622 |
0.083 |
2.705 |
184% |
47% |
1.7.1 |
link |
C++ (not optimized) |
2.921 |
0.054 |
2.975 |
212% |
9% |
g++ 6.1.1 |
link |
PHP 7.0 |
6.447 |
0.178 |
6.624 |
596% |
122% |
7.0.11 |
link |
Java 8 (see notes) |
12.064 |
0.080 |
12.144 |
1176% |
83% |
1.8.0_102 |
link |
Ruby |
12.742 |
0.230 |
12.972 |
1263% |
6% |
2.3.1 |
link |
Python 3.5 |
17.950 |
0.126 |
18.077 |
1800% |
39% |
3.5.2 |
link |
Perl |
25.054 |
0.014 |
25.068 |
2535% |
38% |
5.24.1 |
link |
Python 2.7 |
25.219 |
0.114 |
25.333 |
2562% |
1% |
2.7.12 |
link |
还有权威对比: https://benchmarksgame.alioth.debian.org/u64q/go.html 原文 https://blog.famzah.net/2016/09/10/cpp-vs-python-vs-php-vs-java-vs-others-performance-benchmark-2016-q3/
大家看看就好。
最后,就是加个大图,说明一切
但是图中没有算compile时间,对动态语言不公平。
另外, 性能相差不大的话, 谁开发效率高,谁是王者, 明显Go是未来明星(也许要加之一,哈哈),nodejs潜力不小!!!
- ASP.NET Web API路由系统:路由系统的几个核心类型
- [ASP.NET] 如果将缓存“滑动过期时间”设置为1秒会怎样?
- [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
- [CORS:跨域资源共享] 同源策略与JSONP
- [CORS:跨域资源共享] W3C的CORS Specification
- 通过扩展让ASP.NET Web API支持JSONP
- ASP.NET Web API自身对CORS的支持:从实例开始
- Generator:化异步为同步
- 超详细的大数据学习资源推荐(下)
- 中国大数据行业发展现状及趋势预测
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构 · 负载均衡的几种类型
- 常用的Hadoop 文件查看工具
- 机器学习之——LINE及LargeVis可视化算法
- 开发人员看测试之细说JBehave
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原生node处理get和post请求
- 如何在Vue中自己实现v-model
- 【STM32F429】第1章 当前主流的小型嵌入式GUI
- 【Unity游戏开发】升级Unity2019后,资源管线后处理采坑记录
- Angular @Effect监听指定Action类型的实现原理
- SAP Spartacus shipping address页面请求1 - Address
- SAP Spartacus shipping address页面请求2.1 - setDefaultAddress
- SAP Spartacus只执行指定单元测试的小技巧
- SAP CDS view里将Date和time连接成timestamp的函数
- SAP CDS view里计算两个date & time字段间包含的seconds秒数
- SAP CDS view里的日期操作函数(往后推算X天得到新日期)
- SAP CDS view的日期格式转换,比如从YYYYMMDD转到DD/MM/YYYY
- SAP CDS view如何取得当前系统日期和系统时间戳
- Vue 父组件如何监听子组件的生命周期
- Django3+websocket+paramiko实现web页面实时输出