几种语言循环1000000000次的时间

Posted 奋斗的菜鸡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几种语言循环1000000000次的时间相关的知识,希望对你有一定的参考价值。

先申明这个并不是测试各种语言的好坏,顶多是和编译优化程度有关。

c语言:

#include <stdio.h>
#include <time.h>


int main(void) {


long a=0;
clock_t start, stop;

double duration;

start = clock();
for(int i=0;i<1000000000;i++){
a++;
}
stop = clock();
duration = ((double)(stop - start))/CLOCKS_PER_SEC;
printf("%f",duration);

return 0;
}

 

结果是2.9s

 

c++

 

#include <iostream>
#include <time.h>
using namespace std;

int main() {
long a=0;
clock_t start, ends;

double duration;

start = clock();
for(int i=0;i<1000000000;i++){
a++;
}
ends = clock();

cout <<"Running Time : "<<(double)(ends - start)/ CLOCKS_PER_SEC << endl;

return 0;
}

 

结果 3.0s

 

php7:

<?php


$t1 = microtime(true);
for($i=0;$i<1000000000;$i++){

}
$t2 = microtime(true);
echo ‘耗时‘.round($t2-$t1,3).‘秒‘;



?>

 

结果是11s

 

java 1.8:

 

import java.io.*;
import java.lang.*;
import java.util.*;
class test
{




public static void main (String[] args) throws java.lang.Exception
{
long start= System.currentTimeMillis();
long a=0;
for(long i=0;i<1000000000;i++){
a++;
}
long end= System.currentTimeMillis();

System.out.println(a);
System.out.println(end-start);
}
}

 

结果是 0.449s

 

nodejs:

 

var start = new Date().getTime();

var a=0;
for(var i=0;i<1000000000;i++){
a++;
}

var end = new Date().getTime();

console.log((end - start)+"ms") ;

 

结果是 1.17s

 

c#:

 

using System;
using System.Diagnostics;
public class Test
{
public static void Main()
{
Stopwatch sw = new Stopwatch();

long a=0;
sw.Start();

for(long i=0;i<1000000000;i++){
a++;
}

sw.Stop();
TimeSpan ts2 = sw.Elapsed;
Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
}
}

 

结果0.541s

 

groovy:

 

using System;
using System.Diagnostics;
public class Test
{
public static void Main()
{
Stopwatch sw = new Stopwatch();

long a=0;
sw.Start();

for(long i=0;i<1000000000;i++){
a++;
}

sw.Stop();
TimeSpan ts2 = sw.Elapsed;
Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
}
}

 

结果:6.2s

 

python3 :

#!/usr/bin/env python
# _*_ coding:utf-8 _*_

import time
# from numba import jit
#
#
# @jit
def test():
a=0



start=time.time()
while a < 1000000000:
a=a+1
end=time.time()

print (end-start)

print (a)

if __name__=="__main__":
test()

结果 90s

不过以上python代码去掉jit的注释使用jit编译后执行结果是 0.035s

 

以上是关于几种语言循环1000000000次的时间的主要内容,如果未能解决你的问题,请参考以下文章

linux的for循环的写法

使用导航控制器创建两次的片段

常用python日期日志获取内容循环的代码片段

用Java代码实现输出乘法口诀表有几种方法?

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

c语言中可以用哪几种语句实现选择结构、循环结构?分别写出形式