Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #50007

Re: How to make this faster

From Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
Newsgroups comp.lang.python
Subject Re: How to make this faster
Date 2013-07-05 18:39 +0000
Message-ID <b3oi6jFu5lhU3@mid.dfncis.de> (permalink)
References <b3ne2rFojnkU1@mid.dfncis.de> <b3nmtfFojnkU3@mid.dfncis.de> <51d6f960$0$29999$c3e8da3$5496439d@news.astraweb.com>

Show all headers | View raw


On Fri, 05 Jul 2013 16:50:41 +0000, Steven D'Aprano wrote:

> On Fri, 05 Jul 2013 16:07:03 +0000, Helmut Jarausch wrote:
> 
>> The solution above take 0.79 seconds (mean of 100 calls) while the
>> following version take 1.05 seconds (mean of 100 calls):
> 
> 1) How are you timing the calls?

I've put the work horse "Solve" into a loop executing 100 times.
That's on an otherwise idle Linux machine.

> 
> 2) Don't use the mean, that's the wrong statistic when you are measuring 
> something where the error is always one sided. You want the minimum, not 
> the mean.

Here you assume time measuring itself is without error - I doubt that.
If the timing version, which executes function "Solve" one hundred times,
runs about 80-100 seconds without a significant variation, then taking the
mean is mathematically correct. I can't take the minimum since I don't
measure the time a single call takes.

> 
> When you measure the time taken for a piece of code, the number you get 
> is made up of two components:
> 
> 
> 1) the actual time the code would have taken, if there were no random 
> fluctuations due to other processes, etc.; and
> 
> 2) random errors due to switching to other processes, etc.
> 
> Both of these are unknown; you only know the total. But obviously the 
> random errors are always positive. They can never be negative, and you 
> can never measure a time which is less than the fastest your code could 
> run.
> 
> (If your anti-virus software starts scanning in the middle of the trial, 
> it can only make your code take more time to run, never less.)
> 
> So the only way to minimize the error is to pick the minimum time, not 
> the average. The average just gives you:
> 
>   - some unknown "true" time, plus some unknown error, somewhere
>     between the smallest error and the biggest error;
> 
> whereas the minimum gives you:
> 
>   - some unknown "true" time, plus the smallest error yet seen.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 08:22 +0000
  Re: How to make this faster Fábio Santos <fabiosantosart@gmail.com> - 2013-07-05 10:38 +0100
  Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 10:07 +0000
  Re: How to make this faster Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-07-05 11:13 +0100
  Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 10:53 +0000
    Re: How to make this faster Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-07-05 12:02 +0000
    Re: How to make this faster Fábio Santos <fabiosantosart@gmail.com> - 2013-07-05 13:44 +0100
    Re: How to make this faster Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-07-05 14:41 +0100
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 14:28 +0000
      Re: How to make this faster Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-07-05 15:45 +0100
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 14:48 +0000
      Re: How to make this faster Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-07-05 16:26 +0100
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 14:54 +0000
      Re: How to make this faster Fábio Santos <fabiosantosart@gmail.com> - 2013-07-05 16:18 +0100
      Re: How to make this faster Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-07-05 16:24 +0000
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 15:17 +0000
      Re: How to make this faster Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-07-05 16:38 +0100
      Re: How to make this faster MRAB <python@mrabarnett.plus.com> - 2013-07-05 17:25 +0100
      Re: How to make this faster Joshua Landau <joshua.landau.ws@gmail.com> - 2013-07-06 02:45 +0100
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 15:47 +0000
      Re: How to make this faster Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-07-05 16:52 +0000
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 16:07 +0000
      Re: How to make this faster Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-07-05 16:50 +0000
        Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 18:39 +0000
          Re: How to make this faster Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-07-06 03:05 +0000
          Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-06 07:25 +0000
    Re: How to make this faster Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2013-07-05 18:42 +0000

csiph-web