Solaris Desktop Summit: Performance Day 1

Into performance, lots of fun with a very dream like presentation from Bryan Cantrill ;) We got a whirlwind tour of some of the new features in dtrace in Solaris 10 Update 1. Some very cool stuff indeed. A few random highlights for me: \*Late Binding\*
Hallelujah - this will make such a difference in tracking things down in gnome, where we have so many library dependencies and when doing pid probes often various libs are not loaded in when setting up the pid probes [see pango example below]. \*-Z\*: no probes yet but tell dtrace to ignore this for the minute $ dtrace -n 'pid$target:pango-arabic-fc.so::entry{@[probefunc] = count()}' -q -c gucharmap > dtrace: invalid probe specifier pid$target:pango-arabic-fc.so::entry{@[probefunc] = count()}: probe description pid1680:pango-arabic-fc.so::entry does not match any probes
$ dtrace -Z -n 'pid$target:pango-arabic-fc.so::entry{@[probefunc] = count()}' -q -c gucharmap
  arabic_engine_fc_class_init                                       1
  script_engine_create                                              1
  script_engine_init                                                1
  Arabic_Assign_Properties                                         89
  arabic_engine_shape                                              89
  get_ruleset                                                      89
  Get_Joining_Class                                               178
\*String Manipulation\*
All of the string manipulation funcs now supported like substr, index, strtok, strrchr ... #!/usr/sbin/dtrace -s
syscall::open\*:entry
{
  self->filename = arg0;
}

syscall::open\*:return
/self->filename != NULL/
{
 this->filename = basename(copyinstr(self->filename));
 self->filename = NULL;

 this->ext = strrchr(basename(this->filename), '.');
 @[this->ext == NULL ? "": this->ext , this->filename] = count();
}
Lots of other things including support for default args, new ring buffer policy, support for multiple aggregations in printa, auxillary files, a file descriptor array .... I'll blog these up when I get a few moments \*Performance\* The performance breakouts are underway, we have 6 teams of 5 with a good mixture of different skills looking into things such as Firefox startup, Boot time, Java Application performance, Gnome Terminal, Gtk Performance and Panel Applets. We'll be picking other topics as the week progresses. The Boot Time team already look like they have a win thanks to Brian Cameron, Alan Coopersmith and Bryan Cantrill. Check out "Alan's blog":http://blogs.sun.com/roller/page/alanc?entry=solaris_desktop_summit_performance_day for all the details. Brian had an initial hack running to optimise the socket gdm code and hopefully will trim off 3 secs from boot time :) We are digging into Firefox and trying to get a good startup benchmark, which is proving surprisingly tricky, but we'll get there. Issue is C++ name mangling, inlined funcs and so on ... Bart has an initial hack with an endpoint on an access of the history.dat file, but we seem to be losing about 6 secs in the timing :( More to follow.
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