| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- '''
- Profiling performance of the geometry functions
- '''
- import cProfile
- import timeit
- from pypog import geometry
- _profile = ['geometry.squ2_line(0,0,1000,1000)',
- 'geometry.fhex2_line(0,0,1000,1000)',
- 'geometry.rectangle(0,0,1000,1000)',
- 'geometry.hollow_rectangle(0,0,1000,1000)',
- 'geometry.squ2_triangle(0,0,100,100,2)',
- 'geometry.fhex2_triangle(0,0,100,100,2)',
- # 'geometry.squ3_triangle(0,0,0,100,100,100,2)',
- # 'geometry.fhex3_triangle(0,0,0,100,100,100,2)',
- 'geometry.fhex2_pivot((0,0),[(i, j) for i in range(1, 100) for j in range(1,100)], 1)',
- 'geometry.squ2_pivot((0,0),[(i, j) for i in range(1, 100) for j in range(1,100)], 1)',
- ]
- for _call in _profile:
- print(">> {}".format(_call))
- cProfile.run(_call, sort='nfl')
- number = 1
- t = 0
- while 1:
- t = timeit.timeit(lambda: eval(_call), number=number)
- if t >= 1:
- break
- elif number > 1000000:
- print("error: number superior to a million")
- number = "err"
- t = "?"
- break
- number *= 10
- print("Timeit (x{}): {} s.\n".format(number, t))
- print("".join(["-" for _ in range(30)]))
|