code optimization (calc PI) / Full Code of PI calc in Python and C.
Steven D'Aprano
steve at REMOVEME.cybersource.com.au
Thu Jan 4 00:31:55 EST 2007
On Thu, 04 Jan 2007 02:10:44 +0100, Michael M. wrote:
> print "\nTiming a 1 million loop 'for loop' ..."
> start = time.clock()
> for x in range(1000000):
> y = x # do something
Why not "pass # do nothing"?
> end = time.clock()
> print "Time elapsed = ", end - start, "seconds"
Are you aware that you're timing the CREATION of a rather large list, as
well as the loop?
[snip code]
> #print "".join(pi)
> print pi
>
> end_prg = time.clock()
and also the time taken for I/O printing the digits? That can be quite
slow.
For timing functions and small snippets of code, you should investigate
the timeit module. It is very flexible, and will often give more accurate
results than roll-you-own timing.
For example:
>>> import timeit
>>> t = timeit.Timer("for i in range(1000000): pass", "pass")
>>> t.timeit(100) # time the loop one hundred times
29.367985010147095
Now compare it to the speed where you only create the list once.
>>> t = timeit.Timer("for i in L: pass", "L = range(1000000)")
>>> t.timeit(100)
16.155359983444214
--
Steven D'Aprano
More information about the Python-list
mailing list