Why do run times differ among digit-by-digit algorithm for the same solution
Just out of curiosity, I ran a simple digit by digit algorithm to find the square root of the same value 20 times (sigh I know...)
I got the same results for all 20 runs, but the run time differed across all executions. Is this an expected observation or did I code the timer poorly?
def tester(orange):
import timeit
x = orange
step = 1
guess = 0
epsilon = 0.0000000001
start = timeit.default_timer()
while guess ** 2 < x:
guess += step
if guess ** 2 > x:
guess -= step
if step > epsilon:
step = step / 10
else:
break
print("The square root of", x, "is", guess)
stop = timeit.default_timer()
print('Time: ', stop - start)
number = int(input("Enter the number of times that you want to run this test: "))
answer = float(input("Enter a number to find the square root for: "))
while number > 0:
tester(answer)
number -= 1
python python-3.x algorithm runtime
add a comment |
Just out of curiosity, I ran a simple digit by digit algorithm to find the square root of the same value 20 times (sigh I know...)
I got the same results for all 20 runs, but the run time differed across all executions. Is this an expected observation or did I code the timer poorly?
def tester(orange):
import timeit
x = orange
step = 1
guess = 0
epsilon = 0.0000000001
start = timeit.default_timer()
while guess ** 2 < x:
guess += step
if guess ** 2 > x:
guess -= step
if step > epsilon:
step = step / 10
else:
break
print("The square root of", x, "is", guess)
stop = timeit.default_timer()
print('Time: ', stop - start)
number = int(input("Enter the number of times that you want to run this test: "))
answer = float(input("Enter a number to find the square root for: "))
while number > 0:
tester(answer)
number -= 1
python python-3.x algorithm runtime
add a comment |
Just out of curiosity, I ran a simple digit by digit algorithm to find the square root of the same value 20 times (sigh I know...)
I got the same results for all 20 runs, but the run time differed across all executions. Is this an expected observation or did I code the timer poorly?
def tester(orange):
import timeit
x = orange
step = 1
guess = 0
epsilon = 0.0000000001
start = timeit.default_timer()
while guess ** 2 < x:
guess += step
if guess ** 2 > x:
guess -= step
if step > epsilon:
step = step / 10
else:
break
print("The square root of", x, "is", guess)
stop = timeit.default_timer()
print('Time: ', stop - start)
number = int(input("Enter the number of times that you want to run this test: "))
answer = float(input("Enter a number to find the square root for: "))
while number > 0:
tester(answer)
number -= 1
python python-3.x algorithm runtime
Just out of curiosity, I ran a simple digit by digit algorithm to find the square root of the same value 20 times (sigh I know...)
I got the same results for all 20 runs, but the run time differed across all executions. Is this an expected observation or did I code the timer poorly?
def tester(orange):
import timeit
x = orange
step = 1
guess = 0
epsilon = 0.0000000001
start = timeit.default_timer()
while guess ** 2 < x:
guess += step
if guess ** 2 > x:
guess -= step
if step > epsilon:
step = step / 10
else:
break
print("The square root of", x, "is", guess)
stop = timeit.default_timer()
print('Time: ', stop - start)
number = int(input("Enter the number of times that you want to run this test: "))
answer = float(input("Enter a number to find the square root for: "))
while number > 0:
tester(answer)
number -= 1
python python-3.x algorithm runtime
python python-3.x algorithm runtime
asked Nov 22 '18 at 5:01
RichardRichard
31
31
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
timeit.default_timer()
measures the wall clock time not CPU time. For that reason, Other processes(Background processes included) running on your computer will impact its time. You can see this in action if you run your code for some 100 times and open chrome and mess with it while it's running. You'll see a small increase in time because chrome is using a fraction of your cpu's time.
To get a more accurate estimate of your code use timeit.timeit
.
More here
Even withtimeit.timeit
the results shouldn't (generally) be identical.
– Dukeling
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
1
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424169%2fwhy-do-run-times-differ-among-digit-by-digit-algorithm-for-the-same-solution%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
timeit.default_timer()
measures the wall clock time not CPU time. For that reason, Other processes(Background processes included) running on your computer will impact its time. You can see this in action if you run your code for some 100 times and open chrome and mess with it while it's running. You'll see a small increase in time because chrome is using a fraction of your cpu's time.
To get a more accurate estimate of your code use timeit.timeit
.
More here
Even withtimeit.timeit
the results shouldn't (generally) be identical.
– Dukeling
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
1
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
add a comment |
timeit.default_timer()
measures the wall clock time not CPU time. For that reason, Other processes(Background processes included) running on your computer will impact its time. You can see this in action if you run your code for some 100 times and open chrome and mess with it while it's running. You'll see a small increase in time because chrome is using a fraction of your cpu's time.
To get a more accurate estimate of your code use timeit.timeit
.
More here
Even withtimeit.timeit
the results shouldn't (generally) be identical.
– Dukeling
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
1
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
add a comment |
timeit.default_timer()
measures the wall clock time not CPU time. For that reason, Other processes(Background processes included) running on your computer will impact its time. You can see this in action if you run your code for some 100 times and open chrome and mess with it while it's running. You'll see a small increase in time because chrome is using a fraction of your cpu's time.
To get a more accurate estimate of your code use timeit.timeit
.
More here
timeit.default_timer()
measures the wall clock time not CPU time. For that reason, Other processes(Background processes included) running on your computer will impact its time. You can see this in action if you run your code for some 100 times and open chrome and mess with it while it's running. You'll see a small increase in time because chrome is using a fraction of your cpu's time.
To get a more accurate estimate of your code use timeit.timeit
.
More here
answered Nov 22 '18 at 5:14
Vineeth SaiVineeth Sai
2,52171425
2,52171425
Even withtimeit.timeit
the results shouldn't (generally) be identical.
– Dukeling
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
1
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
add a comment |
Even withtimeit.timeit
the results shouldn't (generally) be identical.
– Dukeling
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
1
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
Even with
timeit.timeit
the results shouldn't (generally) be identical.– Dukeling
Nov 22 '18 at 7:59
Even with
timeit.timeit
the results shouldn't (generally) be identical.– Dukeling
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
@Dukeling Better I suppose?
– Vineeth Sai
Nov 22 '18 at 7:59
1
1
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
ok, this makes sense now... thanks for the explanation!
– Richard
Nov 28 '18 at 6:50
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424169%2fwhy-do-run-times-differ-among-digit-by-digit-algorithm-for-the-same-solution%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown