getStartupInfo()
. According to my tests,Counter | Hit count | Time spent, ms | Attributed to the securable-module infrastructure / to the user-level code? |
---|---|---|---|
start loading | 38 | 37 | user |
fs.getFile() | 38 | 19 | s-m |
up to createSandbox | 38 | 0 | s-m |
createSandbox | 38 | 17 | s-m |
setupSandbox, part 1 | 38 | 1 | s-m |
setupSandbox, part 2 - modifyModuleSandbox | 38 | 54 | s-m |
setupSandbox, part 3 | 38 | 15 | s-m |
before evaluate | 38 | 0 | s-m |
after evaluate | 38 | 52 | user |
finished | 38 | 0 | s-m |
--
You received this message because you are subscribed to the Google Groups "mozilla-labs-jetpack" group.
To post to this group, send email to mozilla-la...@googlegroups.com.
To unsubscribe from this group, send email to mozilla-labs-jet...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mozilla-labs-jetpack?hl=en.
Do you know if there already bugs for the platform problems?
Things that might help this:
* not packaging unused modules (which Brian is working on)
* minifying JS
* making sure we're properly optimized for omnijar
* ensuring module environment doesn't pull in unnecessary api-kit modules
* maybe doing something under the covers to allow us to use Cu.import?
Any other ideas?
Hopefully, Jetpack extensions can stop adding <unpack> true</unpack>
to install.rdf sometime in the future.
I think Brian Warner is doing something related: switch to build-time
module resolution? (from run-time lookup)
[https://bugzilla.mozilla.org/show_bug.cgi?id=627607]
Hernán
We need the continuous integration perf testing with mozilla-central
and some canonical SDK-based add-on.
I added Firefox Desktop support to Mark Finkle's test-harness add-on*,
so the next version will allow devs/users to run startup and pageload
tests locally.
* http://starkravingfinkle.org/blog/2011/02/zippity-using-the-crowd-to-collect-performance-data/
Hi,
Are there plans to track and improve the startup time of addon SDK based extensions in the 1.0 timeframe? The AMO team seems to talk about this regularly (see for example the AMO roadmap for 2011 or this post from 2010).
There are two reasons I ask:
1) It might turn out that to have acceptable performance we'll need to undo some of the changes adding modularity and abstractions to the SDK code.
2) We might need changes from the platform side (see Performance of evalInSandbox, Does evalInSandbox take advantage of compile caching?), which require prior planning.
I did some quick measurements on Mac OS X (10.5) with the latest Minefield and the latest Add-on SDK usinggetStartupInfo()
. According to my tests,
I ran some poor man profiling to check a hypothesis that most of this cost is in the module system (require()). It is very rough, but it showed how most (75%) of the time was spent:
- an empty extension (empty main.js) adds ~20 ms to the 700 ms baseline warm startup time (3%), which is tolerable, but
- the default extension created with 'cfx init' (adds a simple widget and loads the tabs module) adds more than 200 ms (28%) to the warm startup!
- 25% (50ms) running es5.js in each of the 38 distinct modules loaded