Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #92223
| From | Cecil Westerhof <Cecil@decebal.nl> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Function to show time to execute another function |
| Organization | Decebal Computing |
| References | <87k2vgowco.fsf@Equus.decebal.nl> |
| Date | 2015-06-07 11:31 +0200 |
| Message-ID | <87bngrq2y9.fsf@Equus.decebal.nl> (permalink) |
On Sunday 7 Jun 2015 08:39 CEST, Cecil Westerhof wrote:
> Sometimes I just want to know how much time a function takes, but at
> the same time I also want the result of the function. For this I
> wrote the following function: def time_test(function, *args):
> startTime = time.time() results = function(*args) endTime =
> time.time() print('It took {0} seconds'.format(endTime - startTime))
> return results
>
> I can do:
> time_test(test_random, 100, 10 ** 5)
> This outputs:
> It took 17.01685857772827 seconds
> and returns:
> (98592, 100833, 0.977775133140936)
>
> When executing:
> time_test(test_random, 100, 10 ** 6)
> it outputs:
> It took 165.26371836662292 seconds
> and returns:
> (997103, 1002009, 0.9951038363926871)
I improved a little on the function:
def time_test(function, arguments, print_time = True):
start_time = time.time()
results = function(*arguments)
end_time = time.time()
used_time = end_time - start_time
if print_time:
print('It took {0} seconds'.format(used_time))
else:
results = (used_time, results)
return results
Default the function still prints the time, but it also possible to
return the time with the results.
Also the arguments are given as a tuple now.
With the following function:
def test_random(length, multiplier = 10000):
number_list = length * [0]
for i in range(length * multiplier):
number_list[random.randint(0, length - 1)] += 1
minimum = min(number_list)
maximum = max(number_list)
return (minimum, maximum, minimum / maximum)
The call:
time_test(test_random, (100, 10 ** 5))
outputs:
It took 15.95521855354309 seconds
and gives:
(98870, 100810, 0.9807558773931158)
And the call:
time_test(test_random, (100, 10 ** 5), False)
does not output anything and gives
(15.926506280899048, (99146, 100779, 0.9837962273886425))
Of-course a new run will give a different result.
--
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 08:39 +0200
Re: Function to show time to execute another function Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-06-07 08:39 +0100
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 10:22 +0200
Re: Function to show time to execute another function Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-06-07 11:06 +0200
Is it a newsgroup or a list? random832@fastmail.us - 2015-06-07 07:20 -0400
Re: Is it a newsgroup or a list? Steven D'Aprano <steve@pearwood.info> - 2015-06-07 21:45 +1000
Re: Is it a newsgroup or a list? Chris Warrick <kwpolska@gmail.com> - 2015-06-07 15:10 +0200
Re: Is it a newsgroup or a list? Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-06-07 16:12 +0200
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 13:53 +0200
Re: Is it a newsgroup or a list? Tim Golden <mail@timgolden.me.uk> - 2015-06-07 14:57 +0100
Re: Function to show time to execute another function Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-06-07 11:16 +0100
[OT] Re: Function to show time to execute another function Marko Rauhamaa <marko@pacujo.net> - 2015-06-07 14:02 +0300
Re: [OT] Re: Function to show time to execute another function Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-06-07 12:12 +0100
Re: Function to show time to execute another function Steven D'Aprano <steve@pearwood.info> - 2015-06-07 21:29 +1000
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 14:03 +0200
Re: Function to show time to execute another function Tim Golden <mail@timgolden.me.uk> - 2015-06-07 12:05 +0100
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 14:43 +0200
Re: Function to show time to execute another function Laura Creighton <lac@openend.se> - 2015-06-07 15:03 +0200
Re: Function to show time to execute another function Johannes Bauer <dfnsonfsduifb@gmx.de> - 2015-06-07 20:51 +0200
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 22:35 +0200
Re: Function to show time to execute another function Johannes Bauer <dfnsonfsduifb@gmx.de> - 2015-06-08 07:04 +0200
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-08 08:32 +0200
Re: Function to show time to execute another function Steven D'Aprano <steve@pearwood.info> - 2015-06-07 19:28 +1000
Re: Function to show time to execute another function Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-06-07 11:44 +0200
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 14:14 +0200
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 14:58 +0200
Re: Function to show time to execute another function Steven D'Aprano <steve@pearwood.info> - 2015-06-07 19:51 +1000
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 14:27 +0200
Re: Function to show time to execute another function Cecil Westerhof <Cecil@decebal.nl> - 2015-06-07 11:31 +0200
Re: Is it a newsgroup or a list? Gene Heskett <gheskett@wdtv.com> - 2015-06-07 11:49 -0400
Re: Is it a newsgroup or a list? Larry Martell <larry.martell@gmail.com> - 2015-06-07 11:56 -0400
csiph-web