<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel=
"STYLESHEET" href=
"lib.css" type='text/css'
/>
<link rel=
"SHORTCUT ICON" href=
"../icons/pyfav.png" type=
"image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index'
/>
<link rel=
"first" href=
"lib.html" title='Python Library Reference'
/>
<link rel='contents' href='contents.html'
title=
"Contents" />
<link rel='index' href='genindex.html' title='Index'
/>
<link rel='last' href='about.html' title='About this document...'
/>
<link rel='help' href='about.html' title='About this document...'
/>
<link rel=
"next" href=
"node458.html" />
<link rel=
"prev" href=
"profile-limits.html" />
<link rel=
"parent" href=
"profile.html" />
<link rel=
"next" href=
"node458.html" />
<meta name='aesop' content='information'
/>
<title>10.7 Calibration
</title>
<div id='top-navigation-panel' xml:id='top-navigation-panel'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"10.6 Limitations"
href=
"profile-limits.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"10. The Python Profiler"
href=
"profile.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"10.8 Extensions "
href=
"node458.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"profile-limits.html">10.6 Limitations
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"profile.html">10. The Python Profiler
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"node458.html">10.8 Extensions
</A>
<!--End of Navigation Panel-->
<H1><A NAME=
"SECTION0012700000000000000000"></A><A NAME=
"profile-calibration"></A>
The profiler subtracts a constant from each
event handling time to compensate for the overhead of calling the time
function, and socking away the results. By default, the constant is
0.
The following procedure can
be used to obtain a better constant for a given platform (see discussion
in section Limitations above).
<div class=
"verbatim"><pre>
print pr.calibrate(
10000)
The method executes the number of Python calls given by the argument,
directly and again under the profiler, measuring the time for both.
It then computes the hidden overhead per profiler event, and returns
that as a float. For example, on an
800 MHz Pentium running
Windows
2000, and using Python's time.clock() as the timer,
the magical number is about
12.5e-6.
The object of this exercise is to get a fairly consistent result.
If your computer is
<em>very
</em> fast, or your timer function has poor
resolution, you might have to pass
100000, or even
1000000, to get
When you have a consistent answer,
there are three ways you can use it:
<A NAME=
"tex2html52"
HREF=
"#foot46353"><SUP>10.3</SUP></A>
<div class=
"verbatim"><pre>
#
1. Apply computed bias to all Profile instances created hereafter.
profile.Profile.bias = your_computed_bias
#
2. Apply computed bias to a specific Profile instance.
pr.bias = your_computed_bias
#
3. Specify computed bias in instance constructor.
pr = profile.Profile(bias=your_computed_bias)
If you have a choice, you are better off choosing a smaller constant, and
then your results will ``less often'' show up as negative in profile
<BR><HR><H4>Footnotes
</H4>
<DT><A NAME=
"foot46353">... it:
</A><A
href=
"profile-calibration.html#tex2html52"><SUP>10.3</SUP></A></DT>
<DD>Prior to Python
2.2, it
was necessary to edit the profiler source code to embed the bias as
a literal number. You still can, but that method is no longer
described, because no longer needed.
<div class='online-navigation'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"10.6 Limitations"
href=
"profile-limits.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"10. The Python Profiler"
href=
"profile.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"10.8 Extensions "
href=
"node458.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"profile-limits.html">10.6 Limitations
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"profile.html">10. The Python Profiler
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"node458.html">10.8 Extensions
</A>
<span class=
"release-info">Release
2.4.2, documentation updated on
28 September
2005.
</span>
<!--End of Navigation Panel-->
See
<i><a href=
"about.html">About this document...
</a></i> for information on suggesting changes.