|
|
@@ -0,0 +1,42 @@
|
|
|
+'''
|
|
|
+ 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)]))
|
|
|
+
|
|
|
+
|