Skip to content

Commit

Permalink
[GH #175] Added a sort benchmark for ResizableIntegerArrays
Browse files Browse the repository at this point in the history
  • Loading branch information
paultcochrane committed Mar 24, 2013
1 parent bd184ce commit 7922f60
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
61 changes: 61 additions & 0 deletions examples/benchmarks/sort_ria.pir
@@ -0,0 +1,61 @@
# Copyright (C) 2013, Parrot Foundation.

=head1 NAME

examples/benchmarks/sort_ria.pir - Sort a ResizableIntegerArray of N integers

=head1 SYNOPSIS

% time ./parrot examples/benchmarks/sort_ria.pir 100000

Or use the default number of iterations:

% time ./parrot examples/benchmarks/sort_ria.pir

=head1 DESCRIPTION

Sorts an ResizableIntegerArray of N random integers using builtin sort
function for ResizableIntegerArray. The argument N is specified from the
command line.

=cut

.loadlib 'math_ops'

.sub main :main
.param pmc argv
.local int N, i, j

N = argv[1]
if N < 1 goto USE_DEFAULT_SIZE
goto USE_DEFINED_SIZE

USE_DEFAULT_SIZE:
N = 1000000

USE_DEFINED_SIZE:
$P0 = new ['ResizableIntegerArray'], N
i = 0
j = 0

LOOP:
j = rand 0, N
$P0[i] = j
inc i
if i < N goto LOOP

$P0.'sort'()

print "Sorted "
print N
print " integers\n"

.end


# Local Variables:
# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:

1 change: 1 addition & 0 deletions t/benchmark/benchmarks.t
Expand Up @@ -166,6 +166,7 @@ FixedPMCArray:\s\d+\.\d+s\n
last\sis:\s9973\nElapsed\stime:\s\d+\.\d+\n$/x,
q{sort_ffa.pir} => qr/Sorted 1000000 floats/,
q{sort_fia.pir} => qr/Sorted 1000000 integers/,
q{sort_ria.pir} => qr/Sorted 1000000 integers/,
q{stress.pasm} => qr/^A\stotal\sof\s\d+\sGC\sruns\s
were\smade\n$/x,
q{stress1.pasm} => qr/^\d+\.\d+\n
Expand Down

0 comments on commit 7922f60

Please sign in to comment.