Files
test2/source
Iliya Katueshenock ff38836c93 GP3: Select Alternate: Speedup
Implementation change to better use cache by using simpler operation in main loop.
Also avoiding module operations from the loop over all points (module is costly).
On small drawings, the increase can reach 2x.

- Small size of curves / low amount of points (50 curves, size = curve_index) (50 repeats):
  - Timer 'Old': (Average: 2277 ns, Min: 1900 ns, Last: 2000 ns).
  - Timer 'New': (Average: 1314 ns, Min: 1000 ns, Last: 1200 ns).
- 5000 curves, 1000 points. Multithreading is used (50 repeats):
  - Timer 'Old': (Average: 1.1 ms, Min: 0.9 ms, Last: 1.1 ms).
  - Timer 'New': (Average: 0.7 ms, Min: 0.5 ms, Last: 0.6 ms).
- 5000 curves, 1000 points. Multithreading is disabled (50 repeats):
  - Timer 'Old': (Average: 9.2 ms, Min: 5.6 ms, Last: 15.5 ms).
  - Timer 'New': (Average: 7.7 ms, Min: 4.4 ms, Last: 8.5 ms).

Benchmark branch: 1a7d622483/source/blender/editors/curves/intern/curves_selection.cc (L267)

Pull Request: https://projects.blender.org/blender/blender/pulls/110279
2024-01-12 13:06:30 +01:00
..
2024-01-12 13:06:30 +01:00