python、node、php、go、java性能对比测试
那随意了 • 2020 年 02 月 12 日
python、node、php、go、java性能对比测试
无意中看到了这篇文章
突发奇想,我电脑环境那么多为什么不自己测一下呢
开干
电脑配置 i7 8700 ddr4 8g内存*4语言/运行次数100w1000w1亿版本java1429java8
python909509305python 3.5
php1817817967.3
node26255239210.15.3
浏览器(js)1790838谷歌
go<0.53.1727.4go 1.2
1.go实现package main
import (
"fmt"
"time"
"math"
)
func main() {
var start int64=time.Now().UnixNano()
fmt.Println(start)
var a int=1
//var total int=1000000 //100w
//var total int=10000000 //1000w
var total int=100000000 //1亿
for i := 1; i < total; i++{
a=a+i
}
var end int64=time.Now().UnixNano()
fmt.Println(end)
fmt.Println(float64(end - start) / math.Pow(10, 9))
}
2.python实现import time
#total=1000000 #100w
#total=10000000 #1000w
total=100000000 #1亿
start=time.time()
sum=0
for i in range(1,total):
sum=sum+i
end=time.time()
print(end-start)
3.node实现var total=1000000 //100w
//var total=10000000 //1000w
//var total=100000000 //1亿
console.time('test');
sum=0
for(var i=1;i
sum+=sum+i
}
console.timeEnd('test');
4.php实现<?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
#$total=1000000;
#$total=10000000;
$total=100000000;
$t1=microtime_float();
$sum=0;
for($i=1;$i<$total;$i++){
$sum+=$i;
}
echo (microtime_float()-$t1);
5. java实现import java.util.Date;
public class demo {
public static void main(String []args) {
int x=1;
//int total = 1000000;
long startTime = System.currentTimeMillis();
//int total = 10000000;
int total = 100000000;
int sum=0;
while( x < total ) {
sum=sum+x;
x++;
}
long endTime = System.currentTimeMillis();
System.out.println((endTime - startTime) + "ms");
}
}
6,c#实现(没有测试,因为要勾选x64平台还有啥性能优化的)using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int count = 100000000;
Stopwatch watch = new Stopwatch();
int sum = 0;
watch.Start();
for (int n = 0; n < count; n++)
sum++;
watch.Stop();
Console.WriteLine(watch.ElapsedMilliseconds);
}
}
}