Solaris Desktop Summit: Performance Day 2

Had plenty of interesting talks in the morning. Bart Smalders gave us a tour de force of what not to do when looking at performance, which was very cool. \*Bart's Anti Patterns\*
\* Fix performance at the end of the project - all been there :( \* Measure the wrong thing - not just regressions, need to compare against what our customers care about, other desktops :) \* Avoid rewriting algorithms at all cost. Best performance gains in Solaris 10 came from going back and rewriting key algorithms, generally where you get the biggest wins. \* What work do we not need to do? Best performance win is not doing anything ;) Avoid needless work, redrawing at a refresh rate beyond human perception makes little sense, but you'd be surprised how many apps do it, hello Gnome-Terminal. Collapse those redraw events where it makes sense. \* Premature optimisations. As Knuth would say, the root of all evil. \* Focusing only on what you can see readily. Better to look more carefully to see what can be tuned higher up the stack. \* Not optimising for the common case. Lay out data structs in traversal order, coallocate data structs, reuse info where it makes sense. General Advice
\* Have real runnable benchmarks that everyone can run easily and regulary. \* Evaluate key algorithms and data structs. \* Find work that doesn't need to be done and get rid of it. \* Tune hot algorithms [last thing to do, not the first] And above all else remember Disc access is slow, random disc access even slower and file access across the network well even slower. In 1 second you can carry out around 1000,000,000 instructions and about 100 disc head moves, not hard to do the maths. \*Linker Tips\* Rod Evan's gave a great talk on all things to do with the Linker and how to tune things to avoid asking the linker to do any more work than it needs to. Lots of LD_DEBUG flags to use to see what exactly is going on with the dynamic linker, namely bindings, symbols, unused. Check out "Rod's blog":http://blogs.sun.com/rie. More details for another blog ... \*Performance Update\*
Lots of interesting progress with the various breakouts: \* Firefox, on cold boot kinda bizzare seems to be getting to its main gtk loop [gtk_main] and executing various XMapWindow calls in 3.5 sec, but the user isn't seeing the running app for another 9 secs. Need to dig some more, what's the window manager and xserver up to?
Rod's talked sparked some ideas on unused dependencies and Erwann has a patch to remove unecessary gloabl dependency checking for a number of undefined call back functions. Patch just restricts the check to the local lib [use RTLD_FIRST], will benchmark the patch tomorrow. \* Gnome-Terminal, issues around reuse of graphic contexts being created and torn down in the redraw routine. Initial optimisation bere looks like there could be a win of 40-70% :) No doubt Stephen and others will blog the details. \* Boot Time, folks looking at optimising the services dependency graph by removing disabled services. Seeing a 10 sec gain in a 90 sec bootup. More testing to be done, but looks promising. \* Applets, "Glynn":http://www.gnome.org/~gman/blog/06122005-2 has the details. More to be investigated. \*Fresh Air\* Great trip to Yosemite with "Gman":http://www.gnome.org/~gman/blog/06122005-1 , though the encounter with the State Police was a little unexpected, story for a pint ... "Another hard day in the office ..."
Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

jmr

Search

Top Tags
Categories
Archives
« April 2014
MonTueWedThuFriSatSun
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today