Why do run times differ among digit-by-digit algorithm for the same solution












0















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









share|improve this question



























    0















    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









    share|improve this question

























      0












      0








      0








      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









      share|improve this question














      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 5:01









      RichardRichard

      31




      31
























          1 Answer
          1






          active

          oldest

          votes


















          0














          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






          share|improve this answer
























          • 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








          • 1





            ok, this makes sense now... thanks for the explanation!

            – Richard
            Nov 28 '18 at 6:50












          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
          });


          }
          });














          draft saved

          draft discarded


















          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









          0














          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






          share|improve this answer
























          • 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








          • 1





            ok, this makes sense now... thanks for the explanation!

            – Richard
            Nov 28 '18 at 6:50
















          0














          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






          share|improve this answer
























          • 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








          • 1





            ok, this makes sense now... thanks for the explanation!

            – Richard
            Nov 28 '18 at 6:50














          0












          0








          0







          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






          share|improve this answer













          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







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 22 '18 at 5:14









          Vineeth SaiVineeth Sai

          2,52171425




          2,52171425













          • 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








          • 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













          • @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




















          draft saved

          draft discarded




















































          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

          ComboBox Display Member on multiple fields

          Is it possible to collect Nectar points via Trainline?