Heim >Backend-Entwicklung >PHP-Tutorial >Python vs PHP 冒泡排序和累加求和计算性能测试

Python vs PHP 冒泡排序和累加求和计算性能测试

WBOY
WBOYOriginal
2016-06-23 13:36:001088Durchsuche

测试环境: 处理器i5-3230M,64位Ubuntu 14.04
Python 2.7.6, PHP 5.4.39, PHP 7.0.0-dev(2015/04/21)

测试内容:
冒泡排序:对10个升序的数进行排序,降序输出,循环1百万次.
累加求和:0+1+2+3+...+99999999

冒泡排序测试结果对比:
程序: Python   PHP5       PHP7
耗时: 16.910s  14.715s  8.011s
内存: 35.8m    9.0m       12.5m

累加求和测试结果对比:
程序: Python   PHP5      PHP7
耗时: 10.057s  3.855s  1.855s
内存: 3.039g   8.9m      12.5m
Python内存占用达到3GB,这是什么情况?

结论:
Python和PHP都是动态脚本语言,都没有JIT机制,所以测试是公平的.
Python计算性能比不上PHP5,跟PHP7差距更大,所以以后就别黑PHP计算不如Python了.

下面是详细测试过程:

Python冒泡排序:
def bubble_sort(lst):
    length = len(lst)
    for i in range(0, length, 1):
        for j in range(0, length-1, 1):
            if lst[j]                 temp = lst[j]
                lst[j] = lst[j+1]
                lst[j+1] = temp
    return lst
for c in range(1000000):
    lst = [0,1,2,3,4,5,6,7,8,9]
    lst = bubble_sort(lst)
print(lst)
测试: time python BubbleSort.py
耗时: 0m16.910s
内存: 35.8m



Python累加求和:
sum = 0
for i in range(100000000):
    sum += i
print(sum)
测试: time python sum.py
耗时: 0m10.057s
内存: 3.039g



PHP冒泡排序:
function bubble_sort($array) {
    $size = count($array);
    for ($i=0;$i         for ($j=0;$j             if ($array[$j]                 $temp = $array[$j];
                $array[$j] = $array[$j+1];
                $array[$j+1] = $temp;
            }
        }
    }
    return $array;
}
for ($c=0;$c     $array = array(0,1,2,3,4,5,6,7,8,9);
    $array = bubble_sort($array);
}
print_r($array);
测试: time php BubbleSort.php
耗时: 0m14.715s
内存: 9.0m
测试: time phpng BubbleSort.php
耗时: 0m8.011s
内存: 12.5m




PHP累加求和:
$sum = 0;
for($i=0;$i     $sum += $i;
print_r($sum);
测试: time php sum.php
耗时: 0m3.855s
内存: 8.9m
测试: time phpng sum.php
耗时: 0m1.855s
内存: 12.5m



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn