Skip to content
This repository
branch: nqp_pct
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 122 lines (85 sloc) 2.022 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
# Copyright (C) 2001-2003, Parrot Foundation.

=head1 NAME

examples/benchmarks/gc_waves_headers.pasm - GC Benchmark

=head1 SYNOPSIS

    % ./parrot examples/benchmarks/gc_waves_headers.pasm

=head1 DESCRIPTION

Makes some empty strings with C<concat>, then prints out some statistics
indicating:

=over 4

=item * the time taken

=item * the total number of bytes allocated

=item * the total of GC runs made

=item * the total number of collection runs made

=item * the total number of bytes copied

=item * the number of active C<Buffer> C<struct>s

=item * the total number of C<Buffer> C<struct>s

=back

=cut

.pcc_sub :main main:
set I0, 200
set I2, 500
set S0, ""
time N5
set I1, 0

mainloop:

loopup:
concat S1, S0, S0
concat S2, S0, S0
concat S3, S0, S0
concat S4, S0, S0
concat S5, S0, S0
concat S6, S0, S0
concat S7, S0, S0
concat S8, S0, S0

inc I1
lt I1, I0, loopup

loopdown:
dec I1
gt I1, 0, loopdown

inc I3
lt I3, I2, mainloop


getout: time N6

sub N7, N6, N5
print N7
  print " seconds.\n"

interpinfo I1, 1
print "A total of "
print I1
print " bytes were allocated\n"

interpinfo I1, 2
print "A total of "
print I1
print " GC runs were made\n"

interpinfo I1, 3
print "A total of "
print I1
print " collection runs were made\n"

interpinfo I1, 10
print "Copying a total of "
print I1
print " bytes\n"

interpinfo I1, 5
print "There are "
print I1
print " active Buffer structs\n"

interpinfo I1, 7
print "There are "
print I1
print " total Buffer structs\n"

end

=head1 SEE ALSO

F<examples/benchmarks/bench_newp.pasm>,
F<examples/benchmarks/gc_alloc_new.pasm>,
F<examples/benchmarks/gc_alloc_reuse.pasm>,
F<examples/benchmarks/gc_generations.pasm>,
F<examples/benchmarks/gc_header_new.pasm>,
F<examples/benchmarks/gc_header_reuse.pasm>,
F<examples/benchmarks/gc_waves_sizeable_data.pasm>,
F<examples/benchmarks/gc_waves_sizeable_headers.pasm>.

=cut

# Local Variables:
# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Something went wrong with that request. Please try again.