前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C、go、python、java、php和node.js 简单循环累加运算速度测试[测试demo仅供参考]

C、go、python、java、php和node.js 简单循环累加运算速度测试[测试demo仅供参考]

作者头像
双面人
发布2019-04-10 17:23:34
2.1K0
发布2019-04-10 17:23:34
举报
文章被收录于专栏:热爱IT热爱IT

之前简单做了一下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

1 2 3 4 5 6 7

<? $m=0; for (;$i<10000000;$i++){ $m=$m+$i; } echo $m; ?>

python脚本 # 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()

node.js脚本 # cat test.js

1 2 3 4 5

var j=0; for (i = 0; i < 10000000; i++ ) {    j=j+i }     console.log(j);

Java代码: # 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);      } }

C语言,使用gcc编译,编译两种结果,一种是直接编译的,一种是优化编译的。

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); }

go语言代码

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里的值计算完毕,运行时直接取结果。有兴趣的可以学习编译原理。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/11/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档