Last active
July 3, 2017 20:58
-
-
Save mj41/2731bd8258052ed5439c to your computer and use it in GitHub Desktop.
go-loop.sh - perl6 vs. perl5 time -v
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
perl (Perl 5) version: | |
This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux-thread-multi | |
perl6 (Perl 6) version: | |
This is Rakudo version 2017.06-133-ga7b2304 built on MoarVM version 2017.06-35-g3d3d0d0 | |
implementing Perl 6.c. | |
perl 5 - simple int loop: ok | |
Command being timed: "perl -e my $i = 0; while (($i = $i + 1) <= 100000000) { }; print "ok\n";" | |
User time (seconds): 4.17 | |
System time (seconds): 0.00 | |
Percent of CPU this job got: 99% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:04.17 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 4208 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 0 | |
Minor (reclaiming a frame) page faults: 189 | |
Voluntary context switches: 1 | |
Involuntary context switches: 6 | |
Swaps: 0 | |
File system inputs: 0 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
perl 5 - simple int loop (use integer): ok | |
Command being timed: "perl -e use integer; my $i = 0; while (($i = $i + 1) <= 100000000) { }; print "ok\n";" | |
User time (seconds): 3.85 | |
System time (seconds): 0.00 | |
Percent of CPU this job got: 99% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.86 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 4224 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 0 | |
Minor (reclaiming a frame) page faults: 193 | |
Voluntary context switches: 1 | |
Involuntary context switches: 4 | |
Swaps: 0 | |
File system inputs: 0 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
perl 6 - simple int loop (MVM_JIT_DISABLE=1): ok | |
Command being timed: "perl6 -e my int $i = 0; while ($i = $i + 1) <= 100000000 { }; say "ok";" | |
User time (seconds): 3.29 | |
System time (seconds): 0.01 | |
Percent of CPU this job got: 99% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.31 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 70188 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 0 | |
Minor (reclaiming a frame) page faults: 12593 | |
Voluntary context switches: 1 | |
Involuntary context switches: 9 | |
Swaps: 0 | |
File system inputs: 0 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
perl 6 - simple int loop: ok | |
Command being timed: "perl6 -e my int $i = 0; while ($i = $i + 1) <= 100000000 { }; say "ok";" | |
User time (seconds): 0.75 | |
System time (seconds): 0.01 | |
Percent of CPU this job got: 99% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.76 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 70696 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 0 | |
Minor (reclaiming a frame) page faults: 12708 | |
Voluntary context switches: 1 | |
Involuntary context switches: 0 | |
Swaps: 0 | |
File system inputs: 0 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
perl5 - empty print: ok | |
Command being timed: "perl -e print "ok\n"" | |
User time (seconds): 0.00 | |
System time (seconds): 0.00 | |
Percent of CPU this job got: 100% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 4188 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 0 | |
Minor (reclaiming a frame) page faults: 187 | |
Voluntary context switches: 1 | |
Involuntary context switches: 0 | |
Swaps: 0 | |
File system inputs: 0 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
perl5 - Moose, empty print: ok | |
Command being timed: "perl -e use Moose; print "ok\n"" | |
User time (seconds): 0.18 | |
System time (seconds): 0.02 | |
Percent of CPU this job got: 34% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.61 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 21116 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 8 | |
Minor (reclaiming a frame) page faults: 4303 | |
Voluntary context switches: 216 | |
Involuntary context switches: 1 | |
Swaps: 0 | |
File system inputs: 12696 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
perl6 rakudo - empty say: ok | |
Command being timed: "perl6 -e say "ok";" | |
User time (seconds): 0.09 | |
System time (seconds): 0.01 | |
Percent of CPU this job got: 99% | |
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.10 | |
Average shared text size (kbytes): 0 | |
Average unshared data size (kbytes): 0 | |
Average stack size (kbytes): 0 | |
Average total size (kbytes): 0 | |
Maximum resident set size (kbytes): 67632 | |
Average resident set size (kbytes): 0 | |
Major (requiring I/O) page faults: 0 | |
Minor (reclaiming a frame) page faults: 12021 | |
Voluntary context switches: 1 | |
Involuntary context switches: 1 | |
Swaps: 0 | |
File system inputs: 0 | |
File system outputs: 0 | |
Socket messages sent: 0 | |
Socket messages received: 0 | |
Signals delivered: 0 | |
Page size (bytes): 4096 | |
Exit status: 0 | |
Script used to run this test: | |
#!/bin/bash | |
# > cd ~/devel/perl6 | |
# > git clone git@github.com:rakudo/rakudo.git | |
# > cd rakudo | |
# > perl Configure.pl --backends=moar --gen-moar=master --moar-option="--enable-jit" --gen-nqp=master | |
# > make | |
# > make install | |
set -e | |
echo "perl (Perl 5) version:" | |
perl -v | head -n2 | tail -n1 | |
echo | |
echo "perl6 (Perl 6) version:" | |
perl6 -v | |
echo | |
echo -n "perl 5 - simple int loop: " | |
/usr/bin/time -v perl -e 'my $i = 0; while (($i = $i + 1) <= 100000000) { }; print "ok\n";' | |
echo | |
echo -n "perl 5 - simple int loop (use integer): " | |
/usr/bin/time -v perl -e 'use integer; my $i = 0; while (($i = $i + 1) <= 100000000) { }; print "ok\n";' | |
echo | |
echo -n "perl 6 - simple int loop (MVM_JIT_DISABLE=1): " | |
MVM_JIT_DISABLE=1 /usr/bin/time -v perl6 -e 'my int $i = 0; while ($i = $i + 1) <= 100000000 { }; say "ok";' | |
echo | |
echo -n "perl 6 - simple int loop: " | |
/usr/bin/time -v perl6 -e 'my int $i = 0; while ($i = $i + 1) <= 100000000 { }; say "ok";' | |
echo | |
echo -n "perl5 - empty print: " | |
/usr/bin/time -v -v perl -e 'print "ok\n"' | |
echo | |
echo -n "perl5 - Moose, empty print: " | |
/usr/bin/time -v perl -e 'use Moose; print "ok\n"' | |
echo | |
echo -n "perl6 rakudo - empty say: " | |
/usr/bin/time -v perl6 -e 'say "ok";' | |
echo | |
echo "Script used to run this test:" | |
cat go-loop.sh |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment