Kaydet (Commit) b9f1f6d9 authored tarafından Fred Drake's avatar Fred Drake

Misc. markup nits.

All sections get reasonable file names in the HTML output.
üst 2dabd811
...@@ -98,7 +98,7 @@ profile file was referenced; output format has been improved. ...@@ -98,7 +98,7 @@ profile file was referenced; output format has been improved.
\end{description} \end{description}
\section{Instant Users Manual} \section{Instant Users Manual \label{profile-instant}}
This section is provided for users that ``don't want to read the This section is provided for users that ``don't want to read the
manual.'' It provides a very brief overview, and allows a user to manual.'' It provides a very brief overview, and allows a user to
...@@ -111,7 +111,7 @@ would add the following to your module: ...@@ -111,7 +111,7 @@ would add the following to your module:
import profile import profile
profile.run('foo()') profile.run('foo()')
\end{verbatim} \end{verbatim}
%
The above action would cause \samp{foo()} to be run, and a series of The above action would cause \samp{foo()} to be run, and a series of
informative lines (the profile) to be printed. The above approach is informative lines (the profile) to be printed. The above approach is
most useful when working with the interpreter. If you would like to most useful when working with the interpreter. If you would like to
...@@ -123,7 +123,7 @@ function: ...@@ -123,7 +123,7 @@ function:
import profile import profile
profile.run('foo()', 'fooprof') profile.run('foo()', 'fooprof')
\end{verbatim} \end{verbatim}
%
The file \file{profile.py} can also be invoked as The file \file{profile.py} can also be invoked as
a script to profile another script. For example: a script to profile another script. For example:
...@@ -139,7 +139,7 @@ follows: ...@@ -139,7 +139,7 @@ follows:
import pstats import pstats
p = pstats.Stats('fooprof') p = pstats.Stats('fooprof')
\end{verbatim} \end{verbatim}
%
The class \class{Stats} (the above code just created an instance of The class \class{Stats} (the above code just created an instance of
this class) has a variety of methods for manipulating and printing the this class) has a variety of methods for manipulating and printing the
data that was just read into \samp{p}. When you ran data that was just read into \samp{p}. When you ran
...@@ -149,7 +149,7 @@ method calls: ...@@ -149,7 +149,7 @@ method calls:
\begin{verbatim} \begin{verbatim}
p.strip_dirs().sort_stats(-1).print_stats() p.strip_dirs().sort_stats(-1).print_stats()
\end{verbatim} \end{verbatim}
%
The first method removed the extraneous path from all the module The first method removed the extraneous path from all the module
names. The second method sorted all the entries according to the names. The second method sorted all the entries according to the
standard module/line/name string that is printed (this is to comply standard module/line/name string that is printed (this is to comply
...@@ -160,7 +160,7 @@ all the statistics. You might try the following sort calls: ...@@ -160,7 +160,7 @@ all the statistics. You might try the following sort calls:
p.sort_stats('name') p.sort_stats('name')
p.print_stats() p.print_stats()
\end{verbatim} \end{verbatim}
%
The first call will actually sort the list by function name, and the The first call will actually sort the list by function name, and the
second call will print out the statistics. The following are some second call will print out the statistics. The following are some
interesting calls to experiment with: interesting calls to experiment with:
...@@ -168,7 +168,7 @@ interesting calls to experiment with: ...@@ -168,7 +168,7 @@ interesting calls to experiment with:
\begin{verbatim} \begin{verbatim}
p.sort_stats('cumulative').print_stats(10) p.sort_stats('cumulative').print_stats(10)
\end{verbatim} \end{verbatim}
%
This sorts the profile by cumulative time in a function, and then only This sorts the profile by cumulative time in a function, and then only
prints the ten most significant lines. If you want to understand what prints the ten most significant lines. If you want to understand what
algorithms are taking time, the above line is what you would use. algorithms are taking time, the above line is what you would use.
...@@ -179,7 +179,7 @@ taking a lot of time, you would do: ...@@ -179,7 +179,7 @@ taking a lot of time, you would do:
\begin{verbatim} \begin{verbatim}
p.sort_stats('time').print_stats(10) p.sort_stats('time').print_stats(10)
\end{verbatim} \end{verbatim}
%
to sort according to time spent within each function, and then print to sort according to time spent within each function, and then print
the statistics for the top ten functions. the statistics for the top ten functions.
...@@ -188,7 +188,7 @@ You might also try: ...@@ -188,7 +188,7 @@ You might also try:
\begin{verbatim} \begin{verbatim}
p.sort_stats('file').print_stats('__init__') p.sort_stats('file').print_stats('__init__')
\end{verbatim} \end{verbatim}
%
This will sort all the statistics by file name, and then print out This will sort all the statistics by file name, and then print out
statistics for only the class init methods ('cause they are spelled statistics for only the class init methods ('cause they are spelled
with \samp{__init__} in them). As one final example, you could try: with \samp{__init__} in them). As one final example, you could try:
...@@ -196,7 +196,7 @@ with \samp{__init__} in them). As one final example, you could try: ...@@ -196,7 +196,7 @@ with \samp{__init__} in them). As one final example, you could try:
\begin{verbatim} \begin{verbatim}
p.sort_stats('time', 'cum').print_stats(.5, 'init') p.sort_stats('time', 'cum').print_stats(.5, 'init')
\end{verbatim} \end{verbatim}
%
This line sorts statistics with a primary key of time, and a secondary This line sorts statistics with a primary key of time, and a secondary
key of cumulative time, and then prints out some of the statistics. key of cumulative time, and then prints out some of the statistics.
To be specific, the list is first culled down to 50\% (re: \samp{.5}) To be specific, the list is first culled down to 50\% (re: \samp{.5})
...@@ -219,7 +219,7 @@ manual, or guess what the following functions do: ...@@ -219,7 +219,7 @@ manual, or guess what the following functions do:
p.print_callees() p.print_callees()
p.add('fooprof') p.add('fooprof')
\end{verbatim} \end{verbatim}
%
\section{What Is Deterministic Profiling?} \section{What Is Deterministic Profiling?}
\nodename{Deterministic Profiling} \nodename{Deterministic Profiling}
...@@ -254,9 +254,9 @@ of algorithms to be directly compared to iterative implementations. ...@@ -254,9 +254,9 @@ of algorithms to be directly compared to iterative implementations.
\section{Reference Manual} \section{Reference Manual}
\declaremodule{standard}{profile}
\modulesynopsis{None} \declaremodule{standard}{profile}
\modulesynopsis{Python profiler}
...@@ -338,6 +338,7 @@ Analysis of the profiler data is done using this class from the ...@@ -338,6 +338,7 @@ Analysis of the profiler data is done using this class from the
\module{pstats} module: \module{pstats} module:
% now switch modules.... % now switch modules....
% (This \stmodindex use may be hard to change ;-( )
\stmodindex{pstats} \stmodindex{pstats}
\begin{classdesc}{Stats}{filename\optional{, ...}} \begin{classdesc}{Stats}{filename\optional{, ...}}
...@@ -359,11 +360,11 @@ need to be combined with data in an existing \class{Stats} object, the ...@@ -359,11 +360,11 @@ need to be combined with data in an existing \class{Stats} object, the
\end{classdesc} \end{classdesc}
\subsection{The \module{Stats} Class} \subsection{The \class{Stats} Class \label{profile-stats}}
\setindexsubitem{(Stats method)} \class{Stats} objects have the following methods:
\begin{methoddesc}{strip_dirs}{} \begin{methoddesc}[Stats]{strip_dirs}{}
This method for the \class{Stats} class removes all leading path This method for the \class{Stats} class removes all leading path
information from file names. It is very useful in reducing the size information from file names. It is very useful in reducing the size
of the printout to fit within (close to) 80 columns. This method of the printout to fit within (close to) 80 columns. This method
...@@ -377,7 +378,7 @@ statistics for these two entries are accumulated into a single entry. ...@@ -377,7 +378,7 @@ statistics for these two entries are accumulated into a single entry.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{add}{filename\optional{, ...}} \begin{methoddesc}[Stats]{add}{filename\optional{, ...}}
This method of the \class{Stats} class accumulates additional This method of the \class{Stats} class accumulates additional
profiling information into the current profiling object. Its profiling information into the current profiling object. Its
arguments should refer to filenames created by the corresponding arguments should refer to filenames created by the corresponding
...@@ -386,7 +387,7 @@ version of \function{profile.run()}. Statistics for identically named ...@@ -386,7 +387,7 @@ version of \function{profile.run()}. Statistics for identically named
single function statistics. single function statistics.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{sort_stats}{key\optional{, ...}} \begin{methoddesc}[Stats]{sort_stats}{key\optional{, ...}}
This method modifies the \class{Stats} object by sorting it according This method modifies the \class{Stats} object by sorting it according
to the supplied criteria. The argument is typically a string to the supplied criteria. The argument is typically a string
identifying the basis of a sort (example: \code{'time'} or identifying the basis of a sort (example: \code{'time'} or
...@@ -435,7 +436,7 @@ additional arguments will be silently ignored. ...@@ -435,7 +436,7 @@ additional arguments will be silently ignored.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{reverse_order}{} \begin{methoddesc}[Stats]{reverse_order}{}
This method for the \class{Stats} class reverses the ordering of the basic This method for the \class{Stats} class reverses the ordering of the basic
list within the object. This method is provided primarily for list within the object. This method is provided primarily for
compatibility with the old profiler. Its utility is questionable compatibility with the old profiler. Its utility is questionable
...@@ -443,7 +444,7 @@ now that ascending vs descending order is properly selected based on ...@@ -443,7 +444,7 @@ now that ascending vs descending order is properly selected based on
the sort key of choice. the sort key of choice.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{print_stats}{restriction\optional{, ...}} \begin{methoddesc}[Stats]{print_stats}{restriction\optional{, ...}}
This method for the \class{Stats} class prints out a report as described This method for the \class{Stats} class prints out a report as described
in the \function{profile.run()} definition. in the \function{profile.run()} definition.
...@@ -478,7 +479,7 @@ and then proceed to only print the first 10\% of them. ...@@ -478,7 +479,7 @@ and then proceed to only print the first 10\% of them.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{print_callers}{restrictions\optional{, ...}} \begin{methoddesc}[Stats]{print_callers}{restrictions\optional{, ...}}
This method for the \class{Stats} class prints a list of all functions This method for the \class{Stats} class prints a list of all functions
that called each function in the profiled database. The ordering is that called each function in the profiled database. The ordering is
identical to that provided by \method{print_stats()}, and the definition identical to that provided by \method{print_stats()}, and the definition
...@@ -488,14 +489,14 @@ times this specific call was made. A second non-parenthesized number ...@@ -488,14 +489,14 @@ times this specific call was made. A second non-parenthesized number
is the cumulative time spent in the function at the right. is the cumulative time spent in the function at the right.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{print_callees}{restrictions\optional{, ...}} \begin{methoddesc}[Stats]{print_callees}{restrictions\optional{, ...}}
This method for the \class{Stats} class prints a list of all function This method for the \class{Stats} class prints a list of all function
that were called by the indicated function. Aside from this reversal that were called by the indicated function. Aside from this reversal
of direction of calls (re: called vs was called by), the arguments and of direction of calls (re: called vs was called by), the arguments and
ordering are identical to the \method{print_callers()} method. ordering are identical to the \method{print_callers()} method.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}{ignore}{} \begin{methoddesc}[Stats]{ignore}{}
\deprecated{1.5.1}{This is not needed in modern versions of \deprecated{1.5.1}{This is not needed in modern versions of
Python.\footnote{ Python.\footnote{
This was once necessary, when Python would print any unused expression This was once necessary, when Python would print any unused expression
...@@ -504,7 +505,7 @@ Python.\footnote{ ...@@ -504,7 +505,7 @@ Python.\footnote{
\end{methoddesc} \end{methoddesc}
\section{Limitations} \section{Limitations \label{profile-limits}}
There are two fundamental limitations on this profiler. The first is There are two fundamental limitations on this profiler. The first is
that it relies on the Python interpreter to dispatch \dfn{call}, that it relies on the Python interpreter to dispatch \dfn{call},
...@@ -539,13 +540,13 @@ this error can be probabilistically (i.e., on the average) removed. ...@@ -539,13 +540,13 @@ this error can be probabilistically (i.e., on the average) removed.
After the profiler is calibrated, it will be more accurate (in a least After the profiler is calibrated, it will be more accurate (in a least
square sense), but it will sometimes produce negative numbers (when square sense), but it will sometimes produce negative numbers (when
call counts are exceptionally low, and the gods of probability work call counts are exceptionally low, and the gods of probability work
against you :-). ) Do \emph{NOT} be alarmed by negative numbers in against you :-). ) Do \emph{not} be alarmed by negative numbers in
the profile. They should \emph{only} appear if you have calibrated the profile. They should \emph{only} appear if you have calibrated
your profiler, and the results are actually better than without your profiler, and the results are actually better than without
calibration. calibration.
\section{Calibration} \section{Calibration \label{profile-calibration}}
The profiler class has a hard coded constant that is added to each The profiler class has a hard coded constant that is added to each
event handling time to compensate for the overhead of calling the time event handling time to compensate for the overhead of calling the time
...@@ -657,7 +658,7 @@ handles your timer call, along with the appropriate calibration ...@@ -657,7 +658,7 @@ handles your timer call, along with the appropriate calibration
constant :-). constant :-).
\subsection{OldProfile Class} \subsection{OldProfile Class \label{profile-old}}
The following derived profiler simulates the old style profiler, The following derived profiler simulates the old style profiler,
providing errant results on recursive functions. The reason for the providing errant results on recursive functions. The reason for the
...@@ -719,7 +720,7 @@ class OldProfile(Profile): ...@@ -719,7 +720,7 @@ class OldProfile(Profile):
self.stats[nor_func] = nc, nc, tt, ct, nor_callers self.stats[nor_func] = nc, nc, tt, ct, nor_callers
\end{verbatim} \end{verbatim}
\subsection{HotProfile Class} \subsection{HotProfile Class \label{profile-HotProfile}}
This profiler is the fastest derived profile example. It does not This profiler is the fastest derived profile example. It does not
calculate caller-callee relationships, and does not calculate calculate caller-callee relationships, and does not calculate
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment