C、go、python、java、php和node.js 简单循环累加运算速度测试[测试demo仅供参考]
2017-11-08 00:00
961 查看
之前简单做了一下node.js和python的“hello ***”的页面测试,也做了循环的测试,本次主要是增加了java的语言,go语言。主要是想看一下主流四种脚本的速度java、python、php、c语言。均使用for循环进行简单的累加测试。个人技能有限所以只做了简单测试做参考。
实验环境使用linux 64位服务器,操作系统为contos 5.4,php版本5.1.6,python版本为2.6.6,node.js版本为0.4.12,java版本为1.6.0_03,gcc 版本 4.1.2 2008070,go语言为1.0.2。
一、脚本编写
php脚本
# cat test.php
python脚本
# cat test.py
node.js脚本
# cat test.js
Java代码:
# cat Test.java
C语言,使用gcc编译,编译两种结果,一种是直接编译的,一种是优化编译的。
go语言代码
二、运行结果
使用time命令对程序运行时间进行统计
以下是循环一千万次的累加测试结果。
以下是循环一万次的累加测试结果
三、结论
从简单的测试来看,c语言不是一般的快,大数据计算情况下node.js速度最快,java次之,python和php比慢。但是如果是少量计算时php效果还是很不错。但是实际应用中,还需要调用各种函数和各方面的资源,并不能以一个空框架下的for来判断。go的速度与C相当,但是编译速度还是比C要慢一点,以上的代码C编译完只有6K多,go编译完有1.3M。每种语言都会有自己擅长的一方面,速度快与慢,还与编写的技巧性有关。学好每一步,认认真真踏实的做就好了。
注:C、go和java被编译后会对代码进行优化。各自不同的编译器优化的侧重也不一样,所以这个测试有些失实。比如即使循环数再大java时间也不会有改变,估计是在编译时已经将for里的值计算完毕,运行时直接取结果。有兴趣的可以学习编译原理。
实验环境使用linux 64位服务器,操作系统为contos 5.4,php版本5.1.6,python版本为2.6.6,node.js版本为0.4.12,java版本为1.6.0_03,gcc 版本 4.1.2 2008070,go语言为1.0.2。
一、脚本编写
php脚本
# cat test.php
1 2 3 4 5 6 7 | <? $m=0; for (;$i<10000000;$i++){ $m=$m+$i; } echo $m; ?> |
# cat test.py
1 2 3 4 5 6 7 8 9 10 | #!/bin/env python #-*- coding:utf-8 -*- def main(): j = 0; for i in xrange(10000000): j=j+i print j if __name__=="__main__": main() |
# cat test.js
1 2 3 4 5 | var j=0; for (i = 0; i < 10000000; i++ ) { j=j+i } console.log(j); |
# cat Test.java
1 2 3 4 5 6 7 8 9 | public class Test { public static void main(String[] args) { long n = 0; for (int i = 0; i < 10000; i++) { n=n+i; } System.out.println(n); } } |
1 2 3 4 5 6 7 8 9 | #include <stdio.h> #include <math.h> main() { long i,j=0; for (i=0 ; i<10000000 ; i++) j=j+i; printf("%ld\n",j); } |
1 2 3 4 5 6 7 8 9 10 11 12 | ; html-script: false ]package main import "fmt" func main() { var sum,i int64 sum=0 for i=0;i<10000000;i++{ sum+=i } fmt.Printf("%d",sum) } |
使用time命令对程序运行时间进行统计
以下是循环一千万次的累加测试结果。
参数 | C语言直接编译 | C语言优化编译 | go | Node.js | Python | PHP | Java |
Real | 0.024s | 0.001s | 0.011s | 0.420s | 1.055s | 1.429s | 0.087 |
User | 0.023s | 0.000s | 0.011s | 0.401s | 1.046s | 1.423s | 0.067 |
sys | 0.001s | 0.001s | 0.000s | 0.019s | 0.009s | 0.007s | 0.015 |
参数 | C语言直接编译 | C语言优化编译 | go | Node.js | Python | PHP | Java |
Real | 0.001s | 0.001s | 0.004s | 0.090s | 0.027s | 0.014s | 0.087 |
User | 0.000s | 0.001s | 0.003s | 0.080s | 0.022s | 0.007s | 0.041 |
sys | 0.001s | 0.000s | 0.002s | 0.010s | 0.006s | 0.007s | 0.017 |
从简单的测试来看,c语言不是一般的快,大数据计算情况下node.js速度最快,java次之,python和php比慢。但是如果是少量计算时php效果还是很不错。但是实际应用中,还需要调用各种函数和各方面的资源,并不能以一个空框架下的for来判断。go的速度与C相当,但是编译速度还是比C要慢一点,以上的代码C编译完只有6K多,go编译完有1.3M。每种语言都会有自己擅长的一方面,速度快与慢,还与编写的技巧性有关。学好每一步,认认真真踏实的做就好了。
注:C、go和java被编译后会对代码进行优化。各自不同的编译器优化的侧重也不一样,所以这个测试有些失实。比如即使循环数再大java时间也不会有改变,估计是在编译时已经将for里的值计算完毕,运行时直接取结果。有兴趣的可以学习编译原理。
相关文章推荐
- 单线程环境下Java/PHP/Python性能测试(循环输出)
- 一键搭建微信小程序开发环境 及demo运行(腾讯云上一键搭建node.js服务器环境,PHP,Java,.NET服务类似)
- [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能
- centos下编译安装node.js、并测试简单demo
- web编程速度大比拼(nodejs go python)(非专业对比)
- AngularJS+RestfulAPI+BasicAuth+Python/PHP/Node.JS来实现一个最简单的新闻管理后台
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)
- C++/C#/F#/Java/JS/Lua/Python/Ruby渲染速度比试
- Java、C++、Python、Ruby、PHP、C#、JS
- [Node.js]expressjs简单测试连接mysql
- Node.js与PHP、Python的字符处理性能对比
- 巅峰对决:node.js和php性能测试
- paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较
- [Node.js] Express的测试覆盖率 管理速度审核
- Cloud9免费云IDE代码编辑平台空间支持Node.js,PHP,Python可使用FTP管理
- C++/C#/F#/Java/JS/Lua/Python/Ruby渲染速度比试
- difirence for java php and js and c and python
- 编程语言拟人化:Java、C++、Python、Ruby、PHP、C#、JS!--隆重推荐转
- node循环引用简单测试
- Node.js与PHP、Python的字符处理性能对比