📄 readme
字号:
MPROF -- memory profiler (version 3.0)To use mprof, you must link the library libc_mp.a (found in the mprofdirectory) into your application (this library is the C library withthe definitions of malloc and free replaced). Profiling startsautomatically when malloc is first called. Profile data is written tothe file "mprof.data". There are several functions that users cancall to change the name of the output file, etc. See the man page inmprof.man.Simply by linking in the new malloc and executing your application, afile called ``mprof.data'' will be created in the current directory.This is the data file that mprof uses to build its dynamic call graph.To look at the output of mprof, first edit the script `mprof' in themprof directory. Replace the mproot variable with the correctpathname of the mprof directory (the directory in which this``README'' file is located). Then place the mprof directory in yoursearch path, and call mprof in your application directory with thefollowing arguments:mprof [ options ] [ executable-file (a.out) ] [ data-file (mprof.data) ]The output contains four tables, the fields of which are described inthe man page in mprof.man. Further documentation is available in apaper which describes the implementation of mprof (published in the1988 summer USENIX conference) . The LaTeX source of that paper islocated in mprof.tex. The printable DVI file is located in mprof.dvi.There are currently four makefiles, for the VAX, Sun-3, Sun-4, andMIPS (specifically, the Decstation 3100). To remake mprof, copy theappropriate file to `Makefile'. If you need to recompile mprof forany reason, type ``make all'' in this directory. To remove .o files,type ``make clean'' in this directory. mprof has been tested on VAX(4.3 BSD and Ultrix using gcc and cc), SUN-3 (gcc and cc), Sun-4 (cc)computers, and Decstation 3100 (gcc and cc). To test if mprof worksin simple cases, type `make test'.Mprof does not use Kyoto Common Lisp anymore. To use mprof, all youneed is a C compiler.The current incarnation of mprof does not handle calls to Sun calls tovalloc or memalign correctly. The calls will be profiled, but if yourprogram calls valloc or memalign and tries to later free that memory,mprof will cause it to core dump. On the VAX, memory allocated byvalloc cannot be freed, and so valloc can be profiled correctly on theVAX. A version of malloc.c is provided with mprof. If this versionis not compatible with the version used on your machine, you may needto replace this file. If you have problems like this, please let meknow so I can keep a record of the bugs encountered.My thanks to Stuart Sechrest, Fred Douglis, Dain Samples, JohnOusterhout, Luigi Semenzato, Richard Tuck, Robert Scheifler, MarkEichin, Pat Stephenson, and Steven Sargent for their interest andcomments.My special thanks to Jeffrey Hsu who did the tricky port of mprof tothe MIPS architecture.In the future (although the exact date is uncertain) I plan to makethe following improvements to mprof:1. Add code to detect duplicate frees.2. Fix up the type determination code in mpfilt (see BUGS section in the man page for mprof). If you have any questions or comments, please feel free to contact me.-Ben Zorn e-mail: zorn@boulder.colorado.edu phone: 303-492-4398Differences between version 2.0 and 2.1:1. In mpfilt.c, the variable stab_i was being incremented withoutchecking for an overflow. Overflow checks were added.2. A user discovered that a value of 5000 for ST_SIZE in mpfilt.c wastoo small. Large programs may require a larger value for ST_SIZE.Differences between version 2.1 and 2.2:1. mprof now runs on the Decstation 3100 (a MIPS machine).2. A bug that prevented mprof from working in version 4.0 of the Sunoperating system was fixed.Difference between version 2.2 and 3.0:1. All analysis is now done in C.2. The file mprof.c was renamed mprof_mon.c and the file mpfilt.c wasrenamed mprof.c.3. The old C-shell script ``mprof'' is not needed anymore. The fileanalysis.lsp is also not needed. It's functionality is now providedin the file mpgraph.c.4. Small bugs previously reported were fixed.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -