-
Notifications
You must be signed in to change notification settings - Fork 138
/
gc_waves_headers.pasm
115 lines (80 loc) · 1.87 KB
/
gc_waves_headers.pasm
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
# Copyright (C) 2001-2003, The Perl Foundation.
# $Id$
=head1 NAME
examples/benchmarks/gc_waves_headers.pasm - GC/DOD 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 DOD 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
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 " DOD 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