diff --git a/man1/memusagestat.1 b/man1/memusagestat.1 index a32b75526..dd8c690d7 100644 --- a/man1/memusagestat.1 +++ b/man1/memusagestat.1 @@ -20,96 +20,115 @@ .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END -.TH MEMUSAGESTAT 1 2013-04-10 "GNU glibc 2.18" "Memory diagnostic tools" +.TH MEMUSAGESTAT 1 2013-04-10 "GNU" "Linux programmer's manual" .SH NAME memusagestat \- generate graphic from memory profiling data .SH SYNOPSIS .BR memusagestat " [\fIoption\fR]... \fIdatafile\fR [\fIoutfile\fR]" .SH DESCRIPTION .B memusagestat -can create a PNG file with graphical representation of memory profiling -data. -Red line in the graph shows the heap usage (allocated memory), -green line shows the stack usage, -x-scale number of memory handling functions calls or time (\fB-t\fR option). -.I datafile -is a binary data file generated by -.BR memusage (1) -utility with -.B -d -option. +creates a PNG file containing a graphical representation of the +memory profiling data in the file +.IR datafile ; +that file is generated via the +.I -d +(or +.IR --data ) +option of +.BR memusage (1). + +The red line in the graph shows the heap usage (allocated memory) +and the green line shows the stack usage. +The x-scale is either the number of memory-handling function calls or +(if the +.I -t +option is specified) +time. .SH OPTIONS .TP .BI \-o\ file \fR,\ \fB\-\-output= file Name of the output file. .TP .BI \-s\ string \fR,\ \fB\-\-string= string -Title string used in the output graphic. +Use +.I string +as the title inside the output graph. .TP .BI \-t\fR,\ \fB\-\-time -Generate output linear to time -(default is linear to number of function calls). +Use time (rather than number of function calls) as the scale for the X axis. .TP .BI \-T\fR,\ \fB\-\-total -Also draw graph for total memory consumption. +Also draw a graph of total memory consumption. .TP .BI \-x\ size \fR,\ \fB\-\-x-size= size -Make graphic size pixels wide. +Make the output graph +.I size +pixels wide. .TP .BI \-y\ size \fR,\ \fB\-\-y\-size= size -Make graphic size pixels high. +Make the output graph +.I size +pixels high. .TP .BI \-?\fR,\ \fB\-\-help -Print help and exit. +Print a help message and exit. .TP .BI \fB\-\-usage Print a short usage message and exit. .TP .BI \-V\fR,\ \fB\-\-version Print version information and exit. -.SH EXAMPLES -Here is a simple program \fImemusagestatexample.c\fR simulating increase -and decrease of memory usage: +.SH EXAMPLE +Below is a simple program that reallocates a block of +memory in cycles that rise to a peak before then cyclically +reallocating the memory in smaller blocks that return to zero. +After compiling the program and running the following commands, +a graph of the memory usage of the program can be found in the file +.IR memusage.png : -.RS 4 +.in +4n +.nf +$ \fBmemusage --data=memusage.dat ./a.out\fP +$ \fBmemusagestat memusage.dat memusage.png\fP +.fi +.in +.SS Program source +.nf #include -.RS 0 #include -.RE -.RS 0 + #define CYCLES 20 -.RE -int main(int argc, char ** argv) { - int i, j; - int *p = NULL; - printf("malloc: %d\\n", sizeof(int)*100); - p = malloc(sizeof(int)*100); +int +main(int argc, char *argv[]) +{ + int i, j; + int *p; - for (i = 0; i < CYCLES; i++) { - if (i < CYCLES/2) j = i; else j--; - printf("realloc: %d\\n", sizeof(int)*((j)*50 + 110)); - p = realloc(p, sizeof(int)*(j*50 + 100)); - printf("realloc: %d\\n", sizeof(int)*((j+1)*150 + 110)); - p = realloc(p, sizeof(int)*((j+1)*150 + 110)); - } - free(p); - return 0; -.RS 0 + printf("malloc: %zd\\n", sizeof(int) * 100); + p = malloc(sizeof(int) * 100); + + for (i = 0; i < CYCLES; i++) { + if (i < CYCLES / 2) + j = i; + else + j--; + + printf("realloc: %zd\\n", sizeof(int) * (j * 50 + 110)); + p = realloc(p, sizeof(int) * (j * 50 + 100)); + + printf("realloc: %zd\\n", sizeof(int) * ((j+1) * 150 + 110)); + p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110)); + } + + free(p); + exit(EXIT_SUCCESS); } -.RE -.RE - -After compiling and running the following, you can see progress of -memory usage (memusagestatexample.png): - -memusage --data=memusagestatexample.dat ./memusagestatexample -.RS 0 -memusagestat memusagestatexample.dat memusagestatexample.png -.RE - +.fi .SH BUGS -For bug reporting instructions, please see: -. +To report bugs, see +.UR http://www.gnu.org/software/libc/bugs.html +.UE .SH SEE ALSO -.BR memusage (1) +.BR memusage (1), +.BR mtrace (1)