手机版

golang、python、php、c、c、java、Nodejs性能对比

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

本人在PHP/C /Go/Py时,突发奇想,想把最近主流的编程语言性能作个简单的比较,至于怎么比,还是不得不用神奇的斐波那契算法。可能是比较常用或好玩吧。

好了,说话便宜,给我看看你的代码!打开麦克,点开Clion开始编码吧!

1.怎么第一是去呢,因为我个人最近正在用,感觉很不错

包主导入' fmt ' func main(){ fmt .println(Fibonacci(34))} func Fibonacci(I int)int { if(I2){ return I;}返回斐波那契(i-2)斐波那契(一-1);}先用Go1.7看看:

复制代码代码如下:[电子邮件保护]:/作品/学习CPP $ go版本时间去做纤体,去时间/fibgo .版本go1.7.5达尔文/amd64

实0米0.206用户0米0.165系统0米0.059秒

真实0m 0.052用户0m0.004s系统0m0.004s

然后,再看看1.8的:

复制代码代码如下:[电子邮件保护]:/作品/学习CPP $ go18版本时间go18构建fib.go时间/fibgo .版本go1.8达尔文/amd64

真实0m 0.204用户0m 0.153 sys 0m 0.062s

真实0m 0.051用户0m 0.045系统0m0.003s

感觉看不出差异,但官方1.8在气相色谱、编译等方面优化提升了20%,可能是这演示太简单了吧。

2.Python,最近玩得也火热,所以拿来比比

极好的斐波那契:如果i2:返回我返回斐波那契(i-2)斐波那契(i-1)打印(斐波那契(34))

先来看看蟒蛇2.7

[电子邮件保护]:/作品/学习CPP $ python2-V时间python 2 ./fib。py Python 2。7 .135702887实0 m2。651用户0 m2。594英里0.027英里

接着是Py 3.5

[电子邮件保护]:/作品/学习CPP $ python3-V时间python 3 ./fib。py Python 3。5 .1实0 m3。110用户0 m2。982系统0m 0.026s一眼就看出巴拉圭最大的问题了:越升级越慢,而且要命的是很多语法不兼容,但平时写写算法、小程序还不错,其它的时候,就算了,还是用去吧。

3.服务器端编程语言(专业超文本预处理器的缩写)嘛,我工作用的多,所以也必须比较下

?phpffunction Fibonacci($ I){ if($ I2)返回$ I;返回斐波那契($i-2)斐波那契($ I-1);} echo Fibonacci(34);

由于我的工作主要用的php5.4,所以先来波:

[email protected]:/works/learnCPP $ PHP 54-v time PHP 54 fib.php PHP 5。4 .43(CLI)(构建: 2016年1 2月21日12:01:59)版权所有1997-2014年年PHP组引擎v2.4.0,版权所有1998-2014年年Zend technologies密封0 m2。28.88万平方米。248000002

测试环境是5.6,所以也来波:

[电子邮件保护]:/works/learnCPP $

新项目、自己玩什么的都是php7,请看:

[电子邮件保护]:/works/learnCPP $感觉php7和5是天壤之别,完全不是一个东西,而且进步提升太大了,在此依赖鸟哥点个赞!建议大家多用php7 .

4.C是我最爱的理论基础,当然说的是C 11/14,不是老古董c99等

#包含iostream const expr int Fibonacci(const int I){ if(I2)return I;返回斐波那契(i-2)斐波那契(一-1);} int main(){ 0斐波那契(34);返回0;}先用g 6.2无优化看看:

[电子邮件保护]:/作品/学习CPP $ time g-6-o a . bin main。CPP时间./a . bin real 0.378 suser 0m 0.254 sys 0m 0.104 store 0.050 suser 0m 0.043 sys 0m 0.002s加优化-O2后,

[电子邮件保护]:/作品/学习CPP $ time g-6-O2-o a . bin main。CPP时间.a . bin real 0.874 ssus 0.344 ssys 0.180 sreal 0.034 ssus 0.019 ssys 0.004s效果还是很明显的,运行时间只有前者一半。

5.C也写了个

#包含stdio。h int斐波那契(int I){ if(I2)返回I;返回斐波那契(i-2)斐波那契(一-1);}int main(){ printf('%d ',斐波那契(34));}

没有优化:

[email protected]:/works/learn CPP $ time gcc-6-o c . bin fib . c time。/c . bin real 0.341用户0m 0.063 sys 0m 0.101 real 0.049用户0m0.044ssys 0m0.002s

添加O2优化:

[email protected]:/works/learn CPP $ time gcc-6-O2-o c . bin fib . c time。/c . bin real 0.143 user 0.065 ssys 0.034 real 0.034 user 0.028 ssys 0.002s

和C 14一样,优化后速度提升明显,快了一倍。

6.Java是我最不想写的东西,虽然它很热,感觉太臃肿了

类Fib { public static void main(String[]args){ system . out . println(Fibonacci(34));}静态int fibonacci(int i){ if(i2)返回I;返回斐波那契(i-2)斐波那契(I-1);}}

编译和运行的结果是:

[email protected]:/works/learnCPP $ Java-version time javac Fib.java时间Java Fib Java version ' 1 . 8 . 0 _ 25 ' Java(TM)SE运行时环境(构建1.8.0_25-b17)Java HotSpot(TM) 64位Server VM(构建25.25-b02,混合模式)real 0m 0.952 suser 0m 1.302 ssys 0m 0.144 sreal 0m 0.150 suser 0m 0.123 ssys

7.当然,最后一个出场的是javascript,一直以来都是大热门。不,恰恰是Nodejs(这个东西和java真tmd没有关系)

函数斐波那契(i){ if(i2)返回I;返回斐波那契(i-2)斐波那契(I-1);}console.log(斐波那契(34))结果:

[email protected]:/works/learning CPP $ node-v timenodefib . js v 6 . 10 . 0 real 0m 0 . 332 sser 0m 0 . 161 ys0m 0 . 062s结果依然震撼,甚至只有TMD 0.3s,总共不到0.5s,几乎接近java,但代码量和可维护性的优势真的要感谢Google Dad和Chrom。

如果Nodejs真的运行稳定,不允许统一“程序江湖”。当然,我只是说,不要太当真。

来看图:

总结:

我感觉每种语言都有不同的用途,表现只是一个单一的指标。我看重可读性、可维护性、可移植性、健壮性、可扩展性,然后才是性能。而且,现代硬件越来越强大,每部手机上都有8 G,cpu赶上五年前PC的cpu,ssd普及。我比较看好Golang/php/python,关注现代c,比如14和17。至于rust、swift、java和scala,主要与个人需求和公司技术栈有关。哈哈!先写这么多吧!

版权声明:golang、python、php、c、c、java、Nodejs性能对比是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。