Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python performance
#5
Here's an old example program I did sometime back just to test the speed increase using numba:
from numba import jit
import time

ITERATIONS = 5000_000
MAXFIB = 20


@jit(nopython=True)
def fastSum(max_No):
    val = 0
    for num in range(1,max_No):
        val += 1/num
    return val


def oldSum(max_No):
    val = 0
    for num in range(1,max_No):
        val += 1/num
    return val


def builtinSum(max_No):
    return sum((1/num for num in range(1,max_No)))

@jit(nopython=True)
def fib(num):
    return 1 if num <= 1 else fib(num-1) + fib(num - 2)

@jit(nopython=True)
def fibIter(num):
    val1,val2 = 1,1
    for n in range(1,num):
        val1,val2 = val2,val1+val2
        
    return val2


if __name__ == "__main__":
    for x in range(1,11):
        print(x,fibIter(x))
    for test in range(3):
        print(f"Running {'fast' if not test else 'old' if test == 1 else 'builtin'} sum() for {ITERATIONS} element(s)")
        for run in range(10):
            start = time.time()
            theSum = fastSum(ITERATIONS) if not test else oldSum(ITERATIONS) if test == 1 else builtinSum(ITERATIONS)
            print(f"\tRun {run} : Answer = {theSum} : Elapsed = {(time.time() - start)}")
       
    a , b = fibIter(MAXFIB) , fibIter(MAXFIB-1)
    print(MAXFIB,a,b,a/b)
    
If you run it you can see the sort of speed improvements possible, give it a go.

Regards

Gary
Reply


Messages In This Thread
Python performance - by Jacques - Jun-17-2020, 09:59 AM
RE: Python performance - by Knight18 - Jun-17-2020, 04:39 PM
RE: Python performance - by snippsat - Jun-17-2020, 09:17 PM
RE: Python performance - by GaryNR - Jun-22-2020, 07:12 PM
RE: Python performance - by GaryNR - Jun-23-2020, 01:03 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  What about Python 3.11 performance boost wavic 2 1,108 Nov-01-2022, 10:45 AM
Last Post: wavic
  why so much differnt performance in python 2.7.10, 2.7.14 and 3.6.4 jiangtianyong 0 2,574 Feb-09-2018, 06:29 AM
Last Post: jiangtianyong

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020