python效率低为什么_python为何效率慢点?PHP跟Python的解释器都是C写的,PHP为什么能快点?...

其实用python的人应该都是不关注它性能的人,毕竟写python确实很愉快

PHP的核心维护者花了很多的心血却提高底层的解释器效率,为什么Python的维护者不去呢?

程序员都喜欢用数据说话,这里我用的python版本是Python 3.6.2(64位),php版本是PHP 7.0.12(64位),node版本是v6.11.0(64位),Go 1.8.3(64位),C# 基于.Net 4.0,lua 5.1.4

对比

python

import time

calNum = 100000000

def test():

sum = 0

for x in range(1, calNum + 1):

sum += x

return sum

start = time.time()

test()

end = time.time()

print(end - start)

PHP

<?php

$calNum = 200000000;

function test() {

$sum = 0;

global $calNum;

for ($i = 0; $i < $calNum; $i++) {

$sum += $i;

}

return $sum;

}

$start = time();

test();

$end = time();

echo ($end - $start);

nodeJS

let calNum = 200000000;

function test() {

let sum = 0;

for (var i = 0; i < calNum; i++) {

sum += i;

}

return sum;

}

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

test();

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

console.log((end - start) / 1000);

Golang

package main

import (

"fmt"

"math"

"time"

)

var calNum = 200000000

func test() int {

sum := 0

for i := 0; i < calNum; i++ {

sum += i

}

return sum

}

func main() {

start := time.Now().UnixNano()

test()

end := time.Now().UnixNano()

fmt.Println(float64(end - start) / math.Pow(10, 9))

}

C#

private static int calNum = 100000000;

static int test()

{

int sum = 0;

for (int i = 0; i < calNum; i++)

{

sum += i;

}

return sum;

}

static void Main(string[] args)

{

double start = ConvertDateTimeInt(DateTime.Now);

test();

double end = ConvertDateTimeInt(DateTime.Now);

Console.WriteLine(end - start);

Console.ReadLine();

}

///

/// DateTime时间格式转换为Unix时间戳格式

///

/// DateTime时间格式

/// Unix时间戳格式

public static double ConvertDateTimeInt(DateTime time)

{

System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));

return (time - startTime).TotalSeconds;

}

lua

calNum = 200000000

function test()

local sum = 0

for i=0,calNum - 1 do

sum = i + sum

end

return sum

end

local start = os.time()

test()

local endTime = os.time()

print(endTime - start)

执行时间(1亿次,2亿次)

python

C:\Users\mh\Desktop>python cal.py

7.873001337051392

C:\Users\mh\Desktop>python cal.py

17.40298104286194

PHP

C:\Users\mh\Desktop>php cal.php

5

C:\Users\mh\Desktop>php cal.php

13

PHP 7.1(新下载的)

C:\Users\mh\Desktop>php cal.php

5

C:\Users\mh\Desktop>php cal.php

10

nodeJS

C:\Users\mh\Desktop>node cal.js

1.288

C:\Users\mh\Desktop>node cal.js

2.603

Golang

C:\Users\mh\Desktop>go run cal.go

0.0519903

C:\Users\mh\Desktop>go run cal.go

0.1080017

C#

0.685999155044556

1.52999567985535

lua(just for fun)

C:\Users\mh\Desktop>cal.lua

1

C:\Users\mh\Desktop>cal.lua

2

PHP还是比python快的,不过在脚本语言中node更快,Go挺快的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值