On Aug 24, 2009, at 7:02 PM, Chad Mynhier wrote:

Why not just use a separate aggregation for this?  For example, in
this one clause, you could do this:

That's what I tried but the result wasn't any different.

I think what's happening is that multiple threads try to write back to the global/aggregation at the same time and values get written over.

Here's an example...

pid$target::ImageLoader??runInitializers*:return
/self->ts && self->lib != 0/
{
  ...
  @initint = sum(this->delta / 1000000000);
  @initfrac = sum(this->delta % 1000000000);
  printa("---> %...@u.%@03us\n", @initint, @initfrac);
  ...
}

This produces the following timings:

---> 0.199488s
---> 0.199488s
---> 0.249219s
---> 0.341708s
---> 0.341708s
---> 0.425014s
---> 0.425014s
---> 0.473674s
---> 0.592053s
---> 0.592053s
---> 0.736120s
---> 0.736120s
---> 0.736120s
---> 0.830530s
---> 0.881503s

The final 0.88 above is not right, though, as seen in the per-library timings:

Static init: 0.29539s for /System/Library/Frameworks/ CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/ Versions/A/CarbonCore Static init: 0.36176s for /Users/joelr/Work/mozilla/startup/./ Minefield.app/Contents/MacOS/libsoftokn3.dylib Static init: 0.40539s for /System/Library/Frameworks/Carbon.framework/ Frameworks/HIToolbox.framework/Versions/A/HIToolbox Static init: 0.48660s for /System/Library/Frameworks/ ApplicationServices.framework/Versions/A/Frameworks/ CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib
...

Just these few are > 0.88s.

        Thanks, Joel

[1] 
http://github.com/wagerlabs/firefox-startup/commit/baeed3b4ac9eef7ebba13ff5bdc6928bfb2ca83f

---
fastest mac firefox!
http://wagerlabs.com




_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to