109
edits
Joel Reymont (talk | contribs)  | 
				Joel Reymont (talk | contribs)   | 
				||
| Line 54: | Line 54: | ||
All timings are in microseconds and specific to my Apple 256Gb SSD.  | All timings are in microseconds and specific to my Apple 256Gb SSD.  | ||
There's something else that I discovered during my snooping around with io.d. Compare the first 20 seconds of [http://gist.github.com/175843 the life of Safari] and [http://gist.github.com/175842 the life of Firefox].  | |||
Basically, all the shared libraries used by Safari are pulled in from the dynamic library shared cache. Safari uses mostly system frameworks, e.g.  | |||
<pre>  | |||
DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 /Applications/Safari.app/Contents/MacOS/Safari   | |||
dyld: loaded: /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera  | |||
dyld: loaded: /System/Library/PrivateFrameworks/Shortcut.framework/Versions/A/Shortcut  | |||
dyld: loaded: /System/Library/PrivateFrameworks/HelpData.framework/Versions/A/HelpData  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXCoreImage.A.dylib  | |||
</pre>  | |||
whereas Firefox uses a whole lot more custom shared libraries, e.g.  | |||
<pre>  | |||
DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 ./Minefield.app/Contents/MacOS/firefox-bin -no-remote -foreground -P 2  | |||
dyld: loaded: /Users/joelr/Work/mozilla/startup/Minefield.app/Contents/MacOS/components/libbrowserdirprovider.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/ATSHI.dylib  | |||
dyld: loaded: /Users/joelr/Work/mozilla/startup/Minefield.app/Contents/MacOS/components/libbrowsercomps.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib  | |||
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib  | |||
dyld: loaded: /System/Library/PrivateFrameworks/Shortcut.framework/Versions/A/Shortcut  | |||
dyld: loaded: /System/Library/PrivateFrameworks/HelpData.framework/Versions/A/HelpData  | |||
dyld: loaded: /Users/joelr/Work/mozilla/startup/./Minefield.app/Contents/MacOS/libnssdbm3.dylib  | |||
dyld: loaded: /Users/joelr/Work/mozilla/startup/./Minefield.app/Contents/MacOS/libfreebl3.dylib  | |||
dyld: loaded: /Users/joelr/Work/mozilla/startup/Minefield.app/Contents/MacOS/libnssckbi.dylib  | |||
dyld: loaded: /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera  | |||
dyld: loaded: /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin  | |||
dyld: loaded: /System/Library/QuickTime/QuickTimeComponents.component/Contents/MacOS/QuickTimeComponents  | |||
dyld: loaded: /System/Library/Frameworks/AGL.framework/Versions/A/AGL  | |||
dyld: loaded: /System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC  | |||
dyld: unloaded: /Users/joelr/Work/mozilla/startup/Minefield.app/Contents/MacOS/libnssckbi.dylib  | |||
</pre>  | |||
What needs to be done to make Firefox use the dynamic library shared cache as aggressively as Safar?  | |||
= Previous statuses =    | = Previous statuses =    | ||
edits