On Friday, December 6, 2013 12:47:54 AM UTC-8, Robert Voigtländer wrote:
> I try to squeeze out some performance of the code pasted on the link below.
> http://pastebin.com/gMnqprST
Several comments:
1) I find this program to be very difficult to read, largely because there's a
whole LOT of duplicated code. Look at lines 53-80, and lines 108-287, and
lines 294-311. It makes it harder to see what this algorithm actually does.
Is there a way to refactor some of this code to use some shared function calls?
2) I looked up the "Bresenham algorithm", and found two references which may be
relevant. The original algorithm was one which computed good raster
approximations to straight lines. The second algorithm described may be more
pertinent to you, because it draws arcs of circles.
http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
Both of these algorithms are old, from the 1960's, and can be implemented using
very simple CPU register operations and minimal memory. Both of the web pages
I referenced have extensive example code and pseudocode, and discuss
optimization. If you need speed, is this really a job for Python?
3) I THINK that I see some code -- those duplicated parts -- which might
benefit from the use of multiprocessing (assuming that you have a multi-core
CPU). But I would have to read more deeply to be sure. I need to understand
the algorithm more completely, and exactly how you have modified it for your
needs.
--
https://mail.python.org/mailman/listinfo/python-list