Hi All,

Answering two e-mails on one pass.

I agree, its hard work.


I believe this thread is about optimizing the XO OS and GUI. That's why 
I call the requirement General_UI_sluggishness.

Optimizing applications is yet another challenge. I'm all for people 
doing that hard work and documenting it so the next person doesn't have 
to re-invent the wheel. Your performance URL is already posted to the 
page in the "tools" section. Let me know if you have any other links 
(GIT URLs?) or e-mails I should make easily accessible.


The performance goal I worked out with Eben is on the page already. It 
could be better but its a start.

Lots of people have noticed.

Neil and Jordan analyzed which Cairo calls are causing the most trouble 
and how long they take.  I also broke John's suggestions in to general 
areas: http://wiki.laptop.org/go/Feature_roadmap/General_UI_sluggishness

Could use more editing (e.g. swap suggestions may belong in memory, file 
read/write caching should be added etc.).

You're just scratcing the surface with BW, latency and "messages". CPU 
cycles, process priority, caching, bottleneck definition, instruction 
sets and compilers, word/block/sector size usage, and if you're really 
hard core rows and columns are all optimizable.

If you have an algorithm improvement to offer, I'm all ears.

When we have a critical mass of time from professional engineers we can 
improve performance. Until then it waits and the users wait too.

Let's build on what we have, we're making progress.


Greg S


On Wed, Dec 31, 2008 at 09:20:27AM -0700, Jordan Crouse wrote:
 > The solution to the performance problems is good old fashioned elbow 
grease.... These are the sorts of things that we need to find and
 > squash - and yes, it will be very time consuming and a little boring.

Several anecdotes for your amusement and reflection:

* When was the last time someone posted to devel asking: "what is the
   right algorithm or datastructure for task ____?"

* When was the last time someone publicly analyzed the upper or lower
   bounds on the bandwidth, latency, or quantity of messages necessary to
   accomplish task ____?

* When was the last time that you published a performance goal for your
   software? Did you hit it? Did anyone notice?


P.S. - Charles Leiserson once remarked that performance is like a
currency which programmers trade for (all) other worthwhile things like
schedule targets, scope of features, other resource consumption, various
kinds of security, etc [1]. This suggests that one would do better to
ask for performance or ____ but not both. Think of Blizzard.

[1] http://www.catonmat.net/blog/mit-introduction-to-algorithms-part-one/

Wade Brainerd wrote:
> I agree with Jordan.  You just have to sit down and do the work to optimize
> the code, either finding the fastest path through hardware and software
> stack.
> I've rewritten Bounce twice now for performance just to hold on to 20fps on
> the XO.  Colors! has been through many performance iterations as well
> (compare v1 and v13 with large brushes).  I've just had my hat handed to me
> by Cairo for Typing Turtle as well (with the hand display enabled, you can
> type about 1WPM).  So I'm looking forward to rewriting my keyboard rendering
> to deal with that.
> If you have an issue with the performance of the XO, just spend the time by
> yourself to analyze it and fix it, talking about it accomplishes nothing.
>  If you find a solution that would help others, post it.
> -Wade
Devel mailing list

Reply via email to