| | |
Timing a Function (Python)
Please support our Python advertiser: Programming Forums - DaniWeb Sister Site
Python24 introduces the function decorator that lends itself nicely to the timing of a function. As a sample function we are using the ever popular and rather stodgy prime number generator. The prime number generator seems to exist only to fluster students and to make niggling comparisons of the speed of computer languages.
# time a function using time.time() and the a @ function decorator # tested with Python24 vegaseat 21aug2005 import time def print_timing(func): def wrapper(*arg): t1 = time.time() res = func(*arg) t2 = time.time() print '%s took %0.3f ms' % (func.func_name, (t2-t1)*1000.0) return res return wrapper # declare the @ decorator just before the function, invokes print_timing() @print_timing def getPrimeList(n): """ returns a list of prime numbers from 2 to < n using a sieve algorithm""" if n < 2: return [] if n == 2: return [2] # do only odd numbers starting at 3 s = range(3, n+1, 2) # n**0.5 may be slightly faster than math.sqrt(n) mroot = n ** 0.5 half = len(s) i = 0 m = 3 while m <= mroot: if s[i]: j = (m*m-3)//2 s[j] = 0 while j < half: s[j] = 0 j += m i = i+1 m = 2*i+3 return [2]+[x for x in s if x] if __name__ == "__main__": print "prime numbers from 2 to <10,000,000 using a sieve algorithm" primeList = getPrimeList(10000000) time.sleep(2.5) """ my output --> prime numbers from 2 to <10,000,000 using a sieve algorithm getPrimeList took 4750.000 ms """
0
•
•
•
•
Note: If you have Windows, it is better to use the time.clock() function (updates 1000 times per second) rather than time.time() (updates 18.2 times per second).
0
•
•
•
•
Vegaseat, to keep primes from going over n, replace line
s = range(3, n+2, 2)
with
s = range(3, n+1, 2)
Henri
s = range(3, n+2, 2)
with
s = range(3, n+1, 2)
Henri
Similar Threads
- python can't pass arguements from a function to another function? (Python)
- Recursive Python function (Python)
- Like function in Python (Python)
- Python Sleep Function: (Python)
- Calling c function from python (Python)
| Thread Tools | Search this Thread |
alarm assignment avogadro beginner bluetooth character cmd code customdialog cx-freeze data decimals dictionary directory dynamic error examples excel exe file float font format function generator gnu graphics gui halp homework http ideas import input itunes java leftmouse line linux list lists logging loop maintain maze module mouse number numbers output parsing path port prime programming projects push py2exe pygame pyglet pyqt python queue random recursion schedule screensaverloopinactive script scrolledtext slicenotation sqlite ssh stdout string strings sudokusolver table terminal text thread threading time tkinter tlapse tuple tutorial ubuntu unicode urllib urllib2 variable ventrilo verify vigenere web webservice wikipedia windows wxpython xlib



