xref: /illumos-gate/usr/src/cmd/sort/statistics.c (revision 101e15b5)
1*101e15b5SRichard Lowe /*
2*101e15b5SRichard Lowe  * CDDL HEADER START
3*101e15b5SRichard Lowe  *
4*101e15b5SRichard Lowe  * The contents of this file are subject to the terms of the
5*101e15b5SRichard Lowe  * Common Development and Distribution License, Version 1.0 only
6*101e15b5SRichard Lowe  * (the "License").  You may not use this file except in compliance
7*101e15b5SRichard Lowe  * with the License.
8*101e15b5SRichard Lowe  *
9*101e15b5SRichard Lowe  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*101e15b5SRichard Lowe  * or http://www.opensolaris.org/os/licensing.
11*101e15b5SRichard Lowe  * See the License for the specific language governing permissions
12*101e15b5SRichard Lowe  * and limitations under the License.
13*101e15b5SRichard Lowe  *
14*101e15b5SRichard Lowe  * When distributing Covered Code, include this CDDL HEADER in each
15*101e15b5SRichard Lowe  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*101e15b5SRichard Lowe  * If applicable, add the following below this CDDL HEADER, with the
17*101e15b5SRichard Lowe  * fields enclosed by brackets "[]" replaced with your own identifying
18*101e15b5SRichard Lowe  * information: Portions Copyright [yyyy] [name of copyright owner]
19*101e15b5SRichard Lowe  *
20*101e15b5SRichard Lowe  * CDDL HEADER END
21*101e15b5SRichard Lowe  */
22*101e15b5SRichard Lowe /*
23*101e15b5SRichard Lowe  * Copyright 2000-2002 Sun Microsystems, Inc.  All rights reserved.
24*101e15b5SRichard Lowe  * Use is subject to license terms.
25*101e15b5SRichard Lowe  */
26*101e15b5SRichard Lowe 
27*101e15b5SRichard Lowe #include "statistics.h"
28*101e15b5SRichard Lowe 
29*101e15b5SRichard Lowe static sort_statistics_t *run_stats;
30*101e15b5SRichard Lowe 
31*101e15b5SRichard Lowe void
stats_init(sort_statistics_t * s)32*101e15b5SRichard Lowe stats_init(sort_statistics_t *s)
33*101e15b5SRichard Lowe {
34*101e15b5SRichard Lowe 	run_stats = s;
35*101e15b5SRichard Lowe 	memset(s, 0, sizeof (sort_statistics_t));
36*101e15b5SRichard Lowe }
37*101e15b5SRichard Lowe 
38*101e15b5SRichard Lowe void
stats_display()39*101e15b5SRichard Lowe stats_display()
40*101e15b5SRichard Lowe {
41*101e15b5SRichard Lowe 	(void) fprintf(stderr,
42*101e15b5SRichard Lowe 	    "Lines fetched:      %20llu\n"
43*101e15b5SRichard Lowe 	    "Lines shelved:      %20llu\n"
44*101e15b5SRichard Lowe 	    "Lines put:          %20llu\n"
45*101e15b5SRichard Lowe 	    "Lines put uniquely: %20llu\n"
46*101e15b5SRichard Lowe 	    "Lines not unique:   %20llu\n"
47*101e15b5SRichard Lowe 	    "Input files:        %20u\n"
48*101e15b5SRichard Lowe 	    "Merge files:        %20u\n"
49*101e15b5SRichard Lowe 	    "Subfiles:           %20llu\n"
50*101e15b5SRichard Lowe 	    "TQS calls:          %20llu\n"
51*101e15b5SRichard Lowe 	    "Swaps:              %20llu\n"
52*101e15b5SRichard Lowe 	    "Available memory:   %20llu\n"
53*101e15b5SRichard Lowe 	    "Insert filled input:%20llu\n"
54*101e15b5SRichard Lowe 	    "Insert filled up:   %20llu\n"
55*101e15b5SRichard Lowe 	    "Insert filled down: %20llu\n"
56*101e15b5SRichard Lowe 	    "TQS calls:          %20llu\n"
57*101e15b5SRichard Lowe 	    "Convert reallocs:   %20llu\n"
58*101e15b5SRichard Lowe 	    "Line conversions:   %20llu\n",
59*101e15b5SRichard Lowe 	    run_stats->st_fetched_lines,
60*101e15b5SRichard Lowe 	    run_stats->st_shelved_lines,
61*101e15b5SRichard Lowe 	    run_stats->st_put_lines,
62*101e15b5SRichard Lowe 	    run_stats->st_put_unique_lines,
63*101e15b5SRichard Lowe 	    run_stats->st_not_unique_lines,
64*101e15b5SRichard Lowe 	    run_stats->st_input_files,
65*101e15b5SRichard Lowe 	    run_stats->st_merge_files,
66*101e15b5SRichard Lowe 	    run_stats->st_subfiles,
67*101e15b5SRichard Lowe 	    run_stats->st_tqs_calls,
68*101e15b5SRichard Lowe 	    run_stats->st_swaps,
69*101e15b5SRichard Lowe 	    run_stats->st_avail_mem,
70*101e15b5SRichard Lowe 	    run_stats->st_insert_full_input,
71*101e15b5SRichard Lowe 	    run_stats->st_insert_full_up,
72*101e15b5SRichard Lowe 	    run_stats->st_insert_full_down,
73*101e15b5SRichard Lowe 	    run_stats->st_tqs_calls,
74*101e15b5SRichard Lowe 	    run_stats->st_convert_reallocs,
75*101e15b5SRichard Lowe 	    run_stats->st_line_conversions);
76*101e15b5SRichard Lowe }
77*101e15b5SRichard Lowe 
78*101e15b5SRichard Lowe void
stats_incr_subfiles()79*101e15b5SRichard Lowe stats_incr_subfiles()
80*101e15b5SRichard Lowe {
81*101e15b5SRichard Lowe 	run_stats->st_subfiles++;
82*101e15b5SRichard Lowe }
83*101e15b5SRichard Lowe 
84*101e15b5SRichard Lowe void
stats_incr_fetches()85*101e15b5SRichard Lowe stats_incr_fetches()
86*101e15b5SRichard Lowe {
87*101e15b5SRichard Lowe 	run_stats->st_fetched_lines++;
88*101e15b5SRichard Lowe }
89*101e15b5SRichard Lowe 
90*101e15b5SRichard Lowe void
stats_incr_shelves()91*101e15b5SRichard Lowe stats_incr_shelves()
92*101e15b5SRichard Lowe {
93*101e15b5SRichard Lowe 	run_stats->st_shelved_lines++;
94*101e15b5SRichard Lowe }
95*101e15b5SRichard Lowe 
96*101e15b5SRichard Lowe void
stats_incr_puts()97*101e15b5SRichard Lowe stats_incr_puts()
98*101e15b5SRichard Lowe {
99*101e15b5SRichard Lowe 	run_stats->st_put_lines++;
100*101e15b5SRichard Lowe }
101*101e15b5SRichard Lowe 
102*101e15b5SRichard Lowe void
stats_incr_swaps()103*101e15b5SRichard Lowe stats_incr_swaps()
104*101e15b5SRichard Lowe {
105*101e15b5SRichard Lowe 	run_stats->st_swaps++;
106*101e15b5SRichard Lowe }
107*101e15b5SRichard Lowe 
108*101e15b5SRichard Lowe void
stats_set_input_files(uint_t n)109*101e15b5SRichard Lowe stats_set_input_files(uint_t n)
110*101e15b5SRichard Lowe {
111*101e15b5SRichard Lowe 	run_stats->st_input_files = n;
112*101e15b5SRichard Lowe }
113*101e15b5SRichard Lowe 
114*101e15b5SRichard Lowe void
stats_incr_input_files()115*101e15b5SRichard Lowe stats_incr_input_files()
116*101e15b5SRichard Lowe {
117*101e15b5SRichard Lowe 	run_stats->st_input_files++;
118*101e15b5SRichard Lowe }
119*101e15b5SRichard Lowe 
120*101e15b5SRichard Lowe void
stats_set_merge_files(uint_t n)121*101e15b5SRichard Lowe stats_set_merge_files(uint_t n)
122*101e15b5SRichard Lowe {
123*101e15b5SRichard Lowe 	run_stats->st_merge_files = n;
124*101e15b5SRichard Lowe }
125*101e15b5SRichard Lowe 
126*101e15b5SRichard Lowe void
stats_incr_merge_files()127*101e15b5SRichard Lowe stats_incr_merge_files()
128*101e15b5SRichard Lowe {
129*101e15b5SRichard Lowe 	run_stats->st_merge_files++;
130*101e15b5SRichard Lowe }
131*101e15b5SRichard Lowe 
132*101e15b5SRichard Lowe void
stats_set_available_memory(uint64_t a)133*101e15b5SRichard Lowe stats_set_available_memory(uint64_t a)
134*101e15b5SRichard Lowe {
135*101e15b5SRichard Lowe 	run_stats->st_avail_mem = a;
136*101e15b5SRichard Lowe }
137*101e15b5SRichard Lowe 
138*101e15b5SRichard Lowe void
stats_incr_insert_filled_input()139*101e15b5SRichard Lowe stats_incr_insert_filled_input()
140*101e15b5SRichard Lowe {
141*101e15b5SRichard Lowe 	run_stats->st_insert_full_input++;
142*101e15b5SRichard Lowe }
143*101e15b5SRichard Lowe 
144*101e15b5SRichard Lowe void
stats_incr_insert_filled_upward()145*101e15b5SRichard Lowe stats_incr_insert_filled_upward()
146*101e15b5SRichard Lowe {
147*101e15b5SRichard Lowe 	run_stats->st_insert_full_up++;
148*101e15b5SRichard Lowe }
149*101e15b5SRichard Lowe 
150*101e15b5SRichard Lowe void
stats_incr_insert_filled_downward()151*101e15b5SRichard Lowe stats_incr_insert_filled_downward()
152*101e15b5SRichard Lowe {
153*101e15b5SRichard Lowe 	run_stats->st_insert_full_down++;
154*101e15b5SRichard Lowe }
155*101e15b5SRichard Lowe 
156*101e15b5SRichard Lowe void
stats_incr_tqs_calls()157*101e15b5SRichard Lowe stats_incr_tqs_calls()
158*101e15b5SRichard Lowe {
159*101e15b5SRichard Lowe 	run_stats->st_tqs_calls++;
160*101e15b5SRichard Lowe }
161*101e15b5SRichard Lowe 
162*101e15b5SRichard Lowe void
stats_incr_put_unique()163*101e15b5SRichard Lowe stats_incr_put_unique()
164*101e15b5SRichard Lowe {
165*101e15b5SRichard Lowe 	run_stats->st_put_unique_lines++;
166*101e15b5SRichard Lowe }
167*101e15b5SRichard Lowe 
168*101e15b5SRichard Lowe void
stats_incr_not_unique()169*101e15b5SRichard Lowe stats_incr_not_unique()
170*101e15b5SRichard Lowe {
171*101e15b5SRichard Lowe 	run_stats->st_not_unique_lines++;
172*101e15b5SRichard Lowe }
173*101e15b5SRichard Lowe 
174*101e15b5SRichard Lowe void
stats_incr_convert_reallocs()175*101e15b5SRichard Lowe stats_incr_convert_reallocs()
176*101e15b5SRichard Lowe {
177*101e15b5SRichard Lowe 	run_stats->st_convert_reallocs++;
178*101e15b5SRichard Lowe }
179*101e15b5SRichard Lowe 
180*101e15b5SRichard Lowe void
stats_incr_line_conversions()181*101e15b5SRichard Lowe stats_incr_line_conversions()
182*101e15b5SRichard Lowe {
183*101e15b5SRichard Lowe 	run_stats->st_line_conversions++;
184*101e15b5SRichard Lowe }
185