Perl VS Python benchmarks

Current benchmark data was generated on Wed May 25 2022, 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 1831ms 34ms 220.3MB 1667ms 147ms pypy 3.8.13
perl 1.pl timeout 0.0ms 0.0MB 0ms 0ms perl 5.34.1
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 140ms 3.4ms 78.6MB 107ms 20ms pypy 3.8.13
python 1.py 682ms 3.3ms 12.4MB 657ms 7ms pyston 3.8.12
python 1.py 1619ms 7.5ms 11.8MB 1603ms 0ms cpython 3.10.4
perl 1.pl 1991ms 5.7ms 14.4MB 1973ms 3ms perl 5.34.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 2907ms 44ms 89.2MB 2870ms 23ms pypy 3.8.13
python 5-m.py 3562ms 19ms 12.9MB 5000ms 1320ms pyston 3.8.12
perl 1.pl 3920ms 281ms 10.8MB 3900ms 0ms perl 5.34.1
python 1.py 4022ms 316ms 8.2MB 4003ms 3ms pyston 3.8.12
python 5-m.py 4407ms 159ms 12.1MB 6360ms 1213ms cpython 3.10.4
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 5-m.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 368ms 2.0ms 75.5MB 337ms 17ms pypy 3.8.13
python 5-m.py 432ms 6.5ms 12.9MB 537ms 173ms pyston 3.8.12
python 1.py 434ms 31ms 8.2MB 420ms 0ms pyston 3.8.12
perl 1.pl 435ms 1.0ms 6.6MB 420ms 0ms perl 5.34.1
python 5-m.py 545ms 3.4ms 12.1MB 683ms 197ms cpython 3.10.4
python 1.py 678ms 48ms 7.7MB 663ms 0ms cpython 3.10.4
python 5-m.py 910ms 3.9ms 78.8MB 1063ms 467ms pypy 3.8.13

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
perl 1.pl 4.2ms 1.5ms 5.0MB 0ms 0ms perl 5.34.1
python 1.py 14ms 1.8ms 7.6MB 10ms 0ms pyston 3.8.12
python 1.py 16ms 2.8ms 7.3MB 10ms 0ms cpython 3.10.4
python 1.py 37ms 1.1ms 54.6MB 12ms 10ms pypy 3.8.13

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 2271ms 62ms 74.5MB 2243ms 13ms pypy 3.8.13
perl 2.pl timeout 0.0ms 0.0MB 0ms 0ms perl 5.34.1
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 294ms 5.0ms 74.1MB 253ms 27ms pypy 3.8.13
python 1.py 583ms 1.7ms 73.4MB 557ms 13ms pypy 3.8.13
python 1.py 1420ms 106ms 8.7MB 1407ms 0ms pyston 3.8.12
python 2.py 2057ms 12ms 8.5MB 2043ms 0ms pyston 3.8.12
perl 2.pl 3045ms 197ms 6.3MB 3027ms 0ms perl 5.34.1
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
perl 4.pl timeout 0.0ms 0.0MB 0ms 0ms perl 5.34.1
python 8.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
perl 4.pl timeout 0.0ms 0.0MB 0ms 0ms perl 5.34.1
python 8.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 8-m.py 4206ms 35ms 105.3MB 7317ms 397ms pypy 3.8.13
perl 4-m.pl 4778ms 29ms 9.4MB 8997ms 0ms perl 5.34.1
python 8.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12