Hello, me, tomeu and Marco engaged in a discussion about Sugar performance off-list, but at some point we thought it would be better material for a public discussion.
Each one of us has been interested in performance for a long time, working in different areas and with different perspectives. To my knowledge, Michael, Chris and Scott have also been measuring and contributing in the past. We have of course different ideas and proposals, with Tomeu being in a better position to give us hard numbers and informed opinions because of the truly aggressive performance work he has been doing lately. When we say generically "performance", we aggregate several related issues: - time to perform specific actions (such as refreshing the screen) - memory footprint of the Sugar shell and associated services - overhead common to all activities (the "hello world" memory usage) - memory footprint of specific activities (such as the browser) - startup time of activities - boot time of the OS To simplify the discussion, I'd like to set aside, for now these other areas: - filesystem (datastore) performance and scalability - networking performance and scalability I'd like to introduce our discussion in the form of a platonic dialog with Tomeu: - What have you been doing so far? - What are the benefits you obtained so far? - Which are the areas where we could gain the most? - Do you see low-hanging fruit we could pick in the short term? - How much further can we improve by dropping specific unnecessary or redundant work and similar pessimizations? - How much further can we improve by refactoring subsystems and APIs to do less work? - How much further can we improve by rewriting some performance-critical parts in a low-level language? - How much further can we improve by replacing inefficient frameworks and support modules with different implementations available off the shelf? (such as "use - How much further can we improve by compromising on the feature set we are providing? (such as "disable anti-aliasing" or "simplify SVG icons or convert to bitmap") - How much further can we improve by pruning from feature set? (such as "drop rounded edges from the Sugar theme"). Anyone is of course welcome to join us with questions, answers and proposals. To keep the discussion relaxed, we do not require backing each and every idea with benchmark results, which in some cases are hard to obtain. Nevertheless, measuring is a useful tool, especially when there there's disagreement on how effective each solution might be. -- \___/ _| o | Bernie Innocenti - http://www.codewiz.org/ \|_X_| "It's an education project, not a laptop project" _______________________________________________ Sugar mailing list [email protected] http://lists.laptop.org/listinfo/sugar

