In article <[EMAIL PROTECTED]>,
 [EMAIL PROTECTED] (Chris Nandor) wrote:

> In my experience, Panther is quite a bit faster with Mac::Carbon startup 
> than Jaguar was.  I've got some benchmarks I keep meaning to clean up and 
> post.  The time spent in dyld has -- the biggest problem -- has been 
> dramatically reduced.

Boy howdy, is it.  The system is an iBook G3/600 with 256MB RAM.  The first 
test is with Mac OS X 10.2.8.

  $ time perl -MMac::Glue -e 'Mac::Glue->new("Finder")->activate'
  real    0m21.445s
  user    0m7.100s
  sys     0m0.510s

  $ time perl -MMac::Carbon -e1
  real    0m19.885s
  user    0m6.810s
  sys     0m0.220s

The second is Mac OS X 10.3.2.

  $ time perl -MMac::Glue -e 'Mac::Glue->new("Finder")->activate'
  real    0m2.067s
  user    0m1.430s
  sys     0m0.320s

  $ time perl -MMac::Carbon -e1
  real    0m1.300s
  user    0m1.130s
  sys     0m0.140s

Wow.  That's pretty dramatic.  More than 10x faster in real, and about 5x 
faster in user+sys.  Why the speedup?

The slowest thing with Mac::Carbon was always in loading the modules on 
startup, with most of the time spent in dyld.  Over 90% of that time in the 
Mac::Glue test in Mac OS X 10.2.8 was spent in dyld.  In the Mac OS X 10.3.2 
version it is still over 75%, but, obviously, much less time is spent there.

Before, it was spending over half of its time in link_library_module and 
add_reference combined, and about 20% in relocate_symbol_pointers/ 
relocate_symbol_pointers_in_library_image.  Now, it still spends about 20% 
in the latter, but the former don't show up at all.  And that 20% is a lot 
less than in the original, since the total time is so much shorter.

I don't know what all that means exactly, but I do know that yeeha, Panther 
is a lot faster at loading in them shared libraries.

-- 
Chris Nandor                      [EMAIL PROTECTED]    http://pudge.net/
Open Source Development Network    [EMAIL PROTECTED]     http://osdn.com/

Reply via email to