Possible performance improvement
Hey,
I could not resist a temptation to do some optimisations and achieved about 10 times faster rendering in some situations (complex drawing zoomed to 1000-5000%). The idea of optimisation - eliminating nodes outside of rendered area, so no bezier calculations and other stuff is needed, so rendering of zoomed image consume less memory and is also faster. The question is - should I continue work on that (solve last minor issues) and try to commit it or I'm the only one who uses Inkscape with complex drawing and zooming in to the finest detail? The fix make code somethat less readable/maintainable, so there is a price for performance improvement. But if there will be support for such thing, I will try to finish it after Easter holidays and see how it works.
Andrius
On 13 Apr 2006, at 14:21 , Andrius Ramanauskas wrote:
Hey,
I could not resist a temptation to do some optimisations and achieved about 10 times faster rendering in some situations (complex drawing zoomed to 1000-5000%). The idea of optimisation - eliminating nodes outside of rendered area, so no bezier calculations and other stuff is needed, so rendering of zoomed image consume less memory and is also faster. The question is - should I continue work on that (solve last minor issues) and try to commit it or I'm the only one who uses Inkscape with complex drawing and zooming in to the finest detail? The fix make code somethat less readable/maintainable, so there is a price for performance improvement. But if there will be support for such thing, I will try to finish it after Easter holidays and see how it works.
You are addressing one of my top "concerns" with Inkscape so, as a user, I can only say: "great". but I'm still just a user so I cannot really appreciate the importance of the readability of the code.
I hope you'll be able to commit this ;-)
JiHO --- Windows, c'est un peu comme le beaujolais nouveau : a chaque nouvelle cuvee on sait que ce sera degueulasse, mais on en prend quand meme par masochisme. --- http://jo.irisson.free.fr/
Andrius Ramanauskas wrote:
Hey,
I could not resist a temptation to do some optimisations and achieved about 10 times faster rendering in some situations (complex drawing zoomed to 1000-5000%). The idea of optimisation - eliminating nodes outside of rendered area, so no bezier calculations and other stuff is needed, so rendering of zoomed image consume less memory and is also faster. The question is - should I continue work on that (solve last minor issues) and try to commit it or I'm the only one who uses Inkscape with complex drawing and zooming in to the finest detail? The fix make code somethat less readable/maintainable, so there is a price for performance improvement. But if there will be support for such thing, I will try to finish it after Easter holidays and see how it works.
Andrius
Actually I do notice that zooming in a lot on even simple drawings seems to get pretty sluggish, if your optimisations can improve the render speed there as well I'd love to see them committed. This is ofcourse from an end-users perspective so I'm not taking code maintainability into account here :)
On Thu, Apr 13, 2006 at 03:21:29PM +0300, Andrius Ramanauskas wrote:
Hey,
I could not resist a temptation to do some optimisations and achieved about 10 times faster rendering in some situations (complex drawing zoomed to 1000-5000%). The idea of optimisation - eliminating nodes outside of rendered area, so no bezier calculations and other stuff is needed, so rendering of zoomed image consume less memory and is also faster. The question is - should I continue work on that (solve last minor issues) and try to commit it or I'm the only one who uses Inkscape with complex drawing and zooming in to the finest detail? The fix make code somethat less readable/maintainable, so there is a price for performance improvement. But if there will be support for such thing, I will try to finish it after Easter holidays and see how it works.
Hi Andrius,
I would think this is definitely valuable work - especially since a couple users already spoke up in favor of it. ;-)
If you could, perhaps post your work as patches and solicit feedback from other developers. This would help resolve your concerns about readability/maintainability, plus possibly catch other issues that might creep in.
Do you have CVS access? If not, our policy is pretty straightforward - once you've posted two patches and had them accepted into the tree, just ask me or one of the other admins to give you access.
Bryce
If you could, perhaps post your work as patches and solicit feedback from other developers. This would help resolve your concerns about readability/maintainability, plus possibly catch other issues that might creep in.
Seconded. The basic idea is sound (it's something I've been thinking about for a long time); I think if we try we can make it work without too much impact to maintainability or readability.
-mental
On 4/13/06, Andrius Ramanauskas <knutux@...400...> wrote:
I could not resist a temptation to do some optimisations and achieved about 10 times faster rendering in some situations (complex drawing zoomed to 1000-5000%). The idea of optimisation - eliminating nodes outside of rendered area, so no bezier calculations and other stuff is needed, so rendering of zoomed image consume less memory and is also faster.
Wow, I would be extremely interested to see how you achieved that. Can you please post your current diff somewhere so I could have a look?
In general, the idea sounds good, though it will likely have side effects, and I don't know how easy it will be to fix them. Anyway, my own renderer optimizations of a few months ago just scratched the surface, and there's definitely a lot of potential for more.
The question is - should I continue work on that (solve last minor issues) and try to commit it or I'm the only one who uses Inkscape with complex drawing and zooming in to the finest detail?
Of course you're not alone. I'd say that slowness is one of Inkscape's top three problems right now, and a lot of people will feel the effect of any speed improvement.
The main questions is: Are you going to be around and actively fix bugs for a significant time (say, several months)? With deep changes such as this, not all bugs are visible at once. Many issues will likely emerge with time, and you will have to be on guard for them. So if this is not a problem, by all means please go ahead.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
On Thu, 13 Apr 2006, bulia byak wrote:
[...]
Of course you're not alone. I'd say that slowness is one of Inkscape's top three problems right now, and a lot of people will feel the effect of any speed improvement.
What might be the other two?
Extremely interested to know your point of view on this or if you were just using that phrase to impress upon us just how significant you think the optimisation work is.
On 4/13/06, Alan Horkan <horkana@...44...> wrote:
Of course you're not alone. I'd say that slowness is one of Inkscape's top three problems right now, and a lot of people will feel the effect of any speed improvement.
What might be the other two?
Memory consumtion and not-on-top dialogs on Windows.
The last one is really trivial compared to the first two, but from the viewpoint of a typical user on Windows, it's about as annoying.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
participants (7)
-
Alan Horkan
-
Andrius Ramanauskas
-
Bryce Harrington
-
bulia byak
-
Hans Nieser
-
jiho
-
MenTaLguY