美文网首页
php go python 语言斐波那契数列递归性能测试

php go python 语言斐波那契数列递归性能测试

作者: 农夫三拳有点悬 | 来源:发表于2022-03-22 16:47 被阅读0次

1、测试环境:
CPU:Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
内存:32G
系统:win10

2、软件版本:
Python 3.10.2
PHP 7.2
GO 1.18

3、本文主要通过递归的算法运算斐波那契数列从1到34,目的是测试各语言递归性能,斐波那契数列其它算法在此不做讨论。

python代码

#!/usr/bin/python
# coding=utf-8
import time

def fib(x):
    if x < 2:
        return x
    return fib(x - 2) + fib(x - 1)

t1 = time.time()
for x in range(1, 35):
    print(fib(x), end=' ')
print('time elapsed: %.2f' % (time.time() - t1))

php代码

<?php
function fib($x)
{
    if ($x < 2) {
        return $x;
    }
    return fib($x - 2) + fib($x - 1);
}

$t1 = microtime(true);
for ($x = 1; $x < 35; $x++) {
    echo fib($x) . ' ';
}
printf("time elapsed:%.2f", microtime(true) - $t1);

go代码

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Now()
    for x := 1; x < 35; x++ {
        fmt.Print(fib(x), " ")
    }
    fmt.Printf("time elapsed:%.2f", time.Since(t1).Seconds())
}

func fib(x int) int {
    if x < 2 {
        return x
    }
    return fib(x-2) + fib(x-1)
}

测试结果:
python 3.83s
php 1.56s
go 0.07s

总结:go确实强悍,python出乎意料,竟然比php还慢。

后来怀疑是不是windows系统问题,所以又在Centos7.9下跑了一次(i5(四代)+8G),结果:go持平、php提升到1s,python进一步下降到5.6s。

相关文章

网友评论

      本文标题:php go python 语言斐波那契数列递归性能测试

      本文链接:https://www.haomeiwen.com/subject/etifjrtx.html