Perl VS Python benchmarks

Current benchmark data was generated on Sun Dec 01 2024, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -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 1149ms 16ms 95.7MB 1087ms 47ms pypy 3.10.14
perl 1.pl timeout 0.0ms 77.6MB 4947ms 37ms perl 5.40.0
python 1.py timeout 0.0ms 40.8MB 4970ms 17ms cpython 3.13.0
python 1.py timeout 0.0ms 40.6MB 4743ms 240ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 94ms 1.9ms 68.0MB 63ms 20ms pypy 3.10.14
python 1.py 491ms 25ms 11.9MB 463ms 7ms pyston 3.8.12
python 1.py 710ms 4.2ms 12.8MB 697ms 0ms cpython 3.13.0
perl 1.pl 1789ms 18ms 14.4MB 1767ms 7ms perl 5.40.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1909ms 10.0ms 88.3MB 1867ms 23ms pypy 3.10.14
python 5-m.py 2472ms 27ms 12.5MB 3610ms 997ms pyston 3.8.12
python 5-m.py 2826ms 10ms 64.9MB 4047ms 780ms pypy 3.10.14
python 1.py 3033ms 47ms 8.1MB 3017ms 0ms pyston 3.8.12
python 5-m.py 3411ms 65ms 13.9MB 4617ms 930ms cpython 3.13.0
perl 1.pl 3646ms 17ms 11.0MB 3633ms 3ms perl 5.40.0
python 1.py 4670ms 96ms 8.8MB 4650ms 3ms cpython 3.13.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 250ms 0.3ms 63.8MB 223ms 10ms pypy 3.10.14
python 5-m.py 312ms 1.4ms 12.5MB 420ms 123ms pyston 3.8.12
python 1.py 312ms 2.4ms 8.1MB 297ms 0ms pyston 3.8.12
perl 1.pl 373ms 5.9ms 6.6MB 360ms 0ms perl 5.40.0
python 5-m.py 408ms 10ms 13.9MB 520ms 120ms cpython 3.13.0
python 1.py 478ms 11ms 8.8MB 463ms 0ms cpython 3.13.0
python 5-m.py 555ms 5.0ms 65.0MB 817ms 313ms pypy 3.10.14

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
perl 1.pl 2.9ms 0.4ms 5.1MB 0ms 0ms perl 5.40.0
python 1.py 12ms 1.2ms 7.6MB 5ms 5ms pyston 3.8.12
python 1.py 15ms 0.3ms 8.5MB 10ms 0ms cpython 3.13.0
python 1.py 29ms 1.5ms 51.0MB 4ms 12ms pypy 3.10.14

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 1352ms 14ms 59.8MB 1320ms 17ms pypy 3.10.14
python 1.py 2641ms 30ms 56.6MB 2610ms 13ms pypy 3.10.14
perl 2.pl timeout 0.0ms 6.1MB 4983ms 0ms perl 5.40.0
python 1.py timeout 0.0ms 8.8MB 4987ms 0ms cpython 3.13.0
python 2.py timeout 0.0ms 8.8MB 4983ms 0ms cpython 3.13.0
python 1.py timeout 0.0ms 8.3MB 4990ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 8.1MB 4990ms 0ms pyston 3.8.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 180ms 2.7ms 57.6MB 153ms 10ms pypy 3.10.14
python 1.py 304ms 5.3ms 56.8MB 277ms 10ms pypy 3.10.14
python 1.py 1078ms 255ms 8.3MB 1063ms 0ms pyston 3.8.12
python 2.py 1319ms 15ms 8.1MB 1303ms 0ms pyston 3.8.12
perl 2.pl 2764ms 20ms 6.1MB 2753ms 0ms perl 5.40.0
python 1.py 2912ms 17ms 8.8MB 2900ms 0ms cpython 3.13.0
python 2.py 3132ms 41ms 8.8MB 3123ms 0ms cpython 3.13.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
perl 4.pl timeout 0.0ms 14.0MB 19700ms 13ms perl 5.40.0
python 8.py timeout 0.0ms 16.7MB 53ms 10ms cpython 3.13.0
python 8.py timeout 0.0ms 100.0MB 833ms 137ms pypy 3.10.14
python 8.py timeout 0.0ms 18.2MB 70ms 13ms 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 14.3MB 19487ms 13ms perl 5.40.0
python 8.py timeout 0.0ms 16.4MB 93ms 30ms cpython 3.13.0
python 8.py timeout 0.0ms 99.8MB 1533ms 517ms pypy 3.10.14
python 8.py timeout 0.0ms 17.5MB 140ms 33ms pyston 3.8.12

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 8-m.py 1973ms 18ms 95.1MB 6307ms 370ms pypy 3.10.14
perl 4-m.pl 3406ms 10ms 13.7MB 13160ms 7ms perl 5.40.0
python 8.py timeout 0.0ms 16.1MB 277ms 40ms cpython 3.13.0
python 8.py timeout 0.0ms 17.3MB 397ms 113ms pyston 3.8.12