Python VS Php benchmarks

Current benchmark data was generated on Thu May 04 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1790ms 46ms 217.6MB 1663ms 110ms pypy 3.9.16
php 1.php timeout 0.0ms 141.1MB 4937ms 47ms php 8.2.4
python 1.py timeout 0.0ms 40.9MB 4960ms 17ms cpython 3.11.3
python 1.py timeout 0.0ms 40.3MB 4917ms 63ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 160ms 14ms 74.6MB 110ms 23ms pypy 3.9.16
python 1.py 671ms 2.6ms 12.0MB 633ms 17ms pyston 3.8.12
php 1.php 851ms 1.5ms 62.6MB 823ms 7ms php 8.2.4
python 1.py 966ms 14ms 12.5MB 947ms 3ms cpython 3.11.3

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1514ms 44ms 220.9MB 1403ms 93ms pypy 3.9.16
python 1.py timeout 0.0ms 20.2MB 4977ms 7ms cpython 3.11.3
python 1.py timeout 0.0ms 17.3MB 4980ms 0ms pyston 3.8.12

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 308ms 11ms 88.1MB 263ms 27ms pypy 3.9.16
python 1.py 799ms 10ms 19.9MB 773ms 3ms cpython 3.11.3
python 1.py 868ms 8.8ms 16.8MB 840ms 7ms pyston 3.8.12

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 605ms 2.5ms 78.3MB 567ms 20ms pypy 3.9.16
python 1.py 1404ms 0.9ms 10.1MB 1387ms 0ms cpython 3.11.3
python 1.py 2300ms 2.5ms 9.7MB 2280ms 3ms pyston 3.8.12

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 172ms 1.4ms 73.2MB 137ms 20ms pypy 3.9.16
python 1.py 263ms 2.3ms 9.3MB 247ms 0ms cpython 3.11.3
python 1.py 405ms 1.5ms 9.0MB 390ms 0ms pyston 3.8.12

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 5-m.py 3471ms 17ms 12.7MB 4990ms 1227ms pyston 3.8.12
python 1.py 3566ms 105ms 85.0MB 3510ms 37ms pypy 3.9.16
python 1.py 3928ms 17ms 8.0MB 3910ms 0ms pyston 3.8.12
python 5-m.py 4067ms 23ms 13.6MB 5703ms 1260ms cpython 3.11.3
python 5-m.py 4917ms 70ms 76.1MB 5657ms 1113ms pypy 3.9.16
python 1.py timeout 0.0ms 8.6MB 4980ms 3ms cpython 3.11.3

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 409ms 0.7ms 7.9MB 393ms 3ms pyston 3.8.12
python 1.py 427ms 11ms 73.7MB 390ms 20ms pypy 3.9.16
python 5-m.py 428ms 8.5ms 12.6MB 557ms 143ms pyston 3.8.12
python 5-m.py 505ms 14ms 13.6MB 593ms 207ms cpython 3.11.3
python 1.py 604ms 1.0ms 8.6MB 587ms 0ms cpython 3.11.3
python 5-m.py 874ms 16ms 76.3MB 983ms 463ms pypy 3.9.16

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 13ms 0.4ms 7.3MB 10ms 0ms pyston 3.8.12
python 1.py 15ms 0.9ms 8.4MB 7ms 3ms cpython 3.11.3
python 1.py 40ms 2.2ms 52.0MB 14ms 10ms pypy 3.9.16
php 1.php 57ms 2.1ms 50.9MB 26ms 16ms php 8.2.4

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1759ms 12ms 33.8MB 1307ms 933ms pyston 3.8.12
python 1.py 2124ms 28ms 29.8MB 1697ms 923ms cpython 3.11.3
python 1.py 4614ms 20ms 126.8MB 3537ms 890ms pypy 3.9.16

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 402ms 6.0ms 30.2MB 293ms 170ms pyston 3.8.12
python 1.py 439ms 8.1ms 24.9MB 333ms 170ms cpython 3.11.3
python 1.py 1170ms 6.1ms 96.5MB 913ms 207ms pypy 3.9.16

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 276ms 1.7ms 38.4MB 247ms 13ms pyston 3.8.12
python 1.py 285ms 7.2ms 41.2MB 253ms 10ms cpython 3.11.3
python 1.py 416ms 1.0ms 98.6MB 373ms 27ms pypy 3.9.16

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 2584ms 4.8ms 223.0MB 2433ms 133ms cpython 3.11.3
python 1.py 2598ms 22ms 220.7MB 2400ms 177ms pyston 3.8.12
python 1.py 2650ms 20ms 239.6MB 2537ms 97ms pypy 3.9.16

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 3-m.py 4677ms 58ms 209.3MB 8310ms 410ms pypy 3.9.16
python 3.py timeout 0.0ms 35.2MB 97ms 13ms cpython 3.11.3
python 3.py timeout 0.0ms 34.2MB 73ms 20ms pyston 3.8.12

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 3-m.py 635ms 0.8ms 86.0MB 947ms 127ms pypy 3.9.16
python 3-m.py 676ms 6.7ms 17.7MB 1183ms 33ms pyston 3.8.12
python 3-m.py 943ms 4.1ms 16.7MB 1683ms 53ms cpython 3.11.3

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 232ms 1.0ms 71.0MB 203ms 17ms pypy 3.9.16
python 1.py 278ms 6.3ms 71.9MB 247ms 13ms pypy 3.9.16
python 1.py 925ms 7.8ms 9.0MB 907ms 0ms pyston 3.8.12
python 2.py 1073ms 2.7ms 8.8MB 1057ms 0ms pyston 3.8.12
python 1.py 1276ms 27ms 9.3MB 1257ms 0ms cpython 3.11.3
python 2.py 1421ms 16ms 9.1MB 1407ms 0ms cpython 3.11.3

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 557ms 2.9ms 71.5MB 527ms 20ms pypy 3.9.16
python 1.py 608ms 1.1ms 72.4MB 587ms 7ms pypy 3.9.16
python 1.py 2726ms 8.2ms 9.0MB 2710ms 0ms pyston 3.8.12
python 2.py 3173ms 4.4ms 8.7MB 3160ms 0ms pyston 3.8.12
python 1.py 3748ms 29ms 9.2MB 3733ms 0ms cpython 3.11.3
python 2.py 4262ms 61ms 9.1MB 4247ms 0ms cpython 3.11.3

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 162ms 0.5ms 71.2MB 130ms 13ms pypy 3.9.16
python 1.py 181ms 1.1ms 72.4MB 140ms 23ms pypy 3.9.16
python 1.py 444ms 1.3ms 8.8MB 430ms 0ms pyston 3.8.12
python 2.py 506ms 6.4ms 8.3MB 490ms 0ms pyston 3.8.12
python 1.py 598ms 1.3ms 8.7MB 583ms 0ms cpython 3.11.3
python 2.py 712ms 6.9ms 8.4MB 697ms 0ms cpython 3.11.3

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 2892ms 160ms 230.4MB 2713ms 160ms pypy 3.9.16
php 1.php timeout 0.0ms 113.2MB 4950ms 30ms php 8.2.4
python 1.py timeout 0.0ms 92.9MB 4940ms 40ms cpython 3.11.3
python 1.py timeout 0.0ms 130.3MB 4920ms 53ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 423ms 11ms 149.9MB 360ms 47ms pypy 3.9.16
php 1.php 1214ms 6.9ms 66.4MB 1183ms 13ms php 8.2.4
python 1.py timeout 0.0ms 37.1MB 4977ms 7ms cpython 3.11.3
python 1.py timeout 0.0ms 41.4MB 4960ms 17ms pyston 3.8.12

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 2132ms 23ms 71.3MB 2103ms 10ms pypy 3.9.16
python 1.py 3664ms 19ms 70.4MB 3623ms 23ms pypy 3.9.16
python 1.py timeout 0.0ms 8.4MB 4987ms 0ms cpython 3.11.3
python 2.py timeout 0.0ms 8.6MB 4983ms 0ms cpython 3.11.3
python 1.py timeout 0.0ms 8.3MB 4987ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 7.9MB 4980ms 0ms pyston 3.8.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 279ms 3.4ms 71.2MB 253ms 10ms pypy 3.9.16
python 1.py 425ms 14ms 70.4MB 390ms 17ms pypy 3.9.16
python 1.py 1156ms 2.0ms 8.4MB 1137ms 3ms pyston 3.8.12
python 2.py 1597ms 31ms 7.9MB 1577ms 3ms pyston 3.8.12
python 1.py 3179ms 60ms 8.4MB 3167ms 3ms cpython 3.11.3
python 2.py 3574ms 7.6ms 8.6MB 3557ms 0ms cpython 3.11.3

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py timeout 0.0ms 321.0MB 4897ms 80ms cpython 3.11.3
python 2.py timeout 0.0ms 633.5MB 4677ms 307ms cpython 3.11.3
python 1.py timeout 0.0ms 382.8MB 4850ms 133ms pypy 3.9.16
python 2.py timeout 0.0ms 991.9MB 4623ms 360ms pypy 3.9.16
python 1.py timeout 0.0ms 320.4MB 4903ms 80ms pyston 3.8.12
python 2.py timeout 0.0ms 633.3MB 4557ms 423ms pyston 3.8.12

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1331ms 14ms 207.2MB 1257ms 60ms pypy 3.9.16
python 2.py 1563ms 21ms 164.4MB 1463ms 83ms pyston 3.8.12
python 2.py 2088ms 6.3ms 164.9MB 1990ms 83ms cpython 3.11.3
python 2.py 2161ms 4.7ms 210.5MB 2013ms 133ms pypy 3.9.16
python 1.py 3370ms 74ms 86.0MB 3313ms 37ms pyston 3.8.12
python 1.py 4719ms 66ms 86.6MB 4660ms 40ms cpython 3.11.3

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 4.py 2411ms 1.3ms 9.1MB 2383ms 10ms pyston 3.8.12
python 4.py 2548ms 1.1ms 9.4MB 2503ms 27ms cpython 3.11.3
python 4.py 2622ms 44ms 125.4MB 2547ms 57ms pypy 3.9.16

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 4.py 576ms 0.8ms 8.8MB 560ms 0ms pyston 3.8.12
python 4.py 607ms 0.3ms 9.1MB 593ms 0ms cpython 3.11.3
python 4.py 672ms 6.8ms 77.0MB 640ms 17ms pypy 3.9.16

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 3388ms 38ms 273.2MB 3253ms 117ms pypy 3.9.16
python 1.py timeout 0.0ms 108.2MB 4930ms 57ms cpython 3.11.3
python 1.py timeout 0.0ms 107.6MB 4930ms 53ms pyston 3.8.12

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 475ms 3.2ms 94.3MB 430ms 27ms pypy 3.9.16
python 1.py 774ms 1.5ms 30.6MB 743ms 13ms pyston 3.8.12
python 1.py 821ms 4.6ms 31.9MB 783ms 23ms cpython 3.11.3

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 4417ms 4.1ms 8.5MB 4400ms 0ms pyston 3.8.12
python 1.py 4746ms 16ms 8.4MB 4730ms 0ms cpython 3.11.3
python 1.py timeout 0.0ms 78.0MB 4953ms 23ms pypy 3.9.16

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1117ms 0.5ms 8.4MB 1103ms 0ms pyston 3.8.12
python 1.py 1201ms 7.0ms 8.5MB 1187ms 0ms cpython 3.11.3
python 1.py 1610ms 16ms 75.2MB 1573ms 23ms pypy 3.9.16

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 8.py timeout 0.0ms 16.3MB 50ms 10ms cpython 3.11.3
python 8.py timeout 0.0ms 99.0MB 657ms 100ms pypy 3.9.16
python 8.py timeout 0.0ms 16.3MB 70ms 20ms pyston 3.8.12

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 8.py timeout 0.0ms 16.2MB 97ms 17ms cpython 3.11.3
python 8.py timeout 0.0ms 102.4MB 1130ms 193ms pypy 3.9.16
python 8.py timeout 0.0ms 17.6MB 167ms 27ms pyston 3.8.12

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 8-m.py 4105ms 62ms 103.1MB 7120ms 430ms pypy 3.9.16
python 8.py timeout 0.0ms 15.9MB 230ms 23ms cpython 3.11.3
python 8.py timeout 0.0ms 16.7MB 310ms 70ms pyston 3.8.12