This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: profile.Profile.calibrate can produce incorrect numbers in some circumstances
Type: behavior Stage:
Components: Library (Lib) Versions: Python 3.4, Python 3.5, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: adamtj, georg.brandl
Priority: normal Keywords: patch

Created on 2012-03-30 16:45 by adamtj, last changed 2022-04-11 14:57 by admin.

Files
File name Uploaded Description Edit
profile-calibrate.patch adamtj, 2012-03-30 16:45
Messages (2)
msg157145 - (view) Author: Adam Tomjack (adamtj) Date: 2012-03-30 16:45
profile.Profile.calibrate can only produces a bias for the default timer.  If you've specified a different timer, it will not be used when calibrating.

Additionally, setting profile.Profile.bias will affect the computed bias.  It will produce a bias that must be added to profile.Profile.bias and cannot be used independently, which is surprising.

The fix is to change
    p = Profile()
to 
    p = Profile(timer=self.timer, bias=0)
in _calibrate_inner().

The attached patch makes that change and additionally removes some code that temporarily resets self.bias in calibrate(), as it had no effect.  Perhaps Profile.bias was meant instead.  At any rate, _calibrate_inner() no longer needs to exist, but is left for backwards compatibility.

This will demonstrate the problem with calibrating after setting profile.Profile.bias:

import profile
profile.Profile.bias = profile.Profile().calibrate(100000); 
print '%+.9f' % profile.Profile.bias
profile.Profile.bias = profile.Profile().calibrate(100000); 
print '%+.9f' % profile.Profile.bias
msg222244 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2014-07-04 00:05
@Adam sorry about the delay in getting back to you.

@Georg can you comment on the patch please.
History
Date User Action Args
2022-04-11 14:57:28adminsetgithub: 58658
2019-03-16 00:12:37BreamoreBoysetnosy: - BreamoreBoy
2014-07-04 00:05:33BreamoreBoysetnosy: + georg.brandl, BreamoreBoy

messages: + msg222244
versions: + Python 3.5, - Python 2.6, Python 3.1, Python 3.2, Python 3.3
2012-03-30 16:45:25adamtjcreate