Closed
Bug 810558
Opened 12 years ago
Closed 8 years ago
Extract data from auto-submitted profiles
Categories
(Core :: Gecko Profiler, defect)
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: BenWa, Unassigned)
References
()
Details
We're hoping to start gather profiles automatically for start-up and ideally more in the future. Building tools to extract useful information would help.
Here are questions this tool should ideally be able to answer:
1) What are interesting points in the profile collected? This is hard to fit an exact criteria. Right now I'm experimenting with a point in the profile that has two non trivial subtree.
2) How does a given function vary in the set of profiles? Does it take roughly the same duration or does it vary quite a bit? Which profiles in the set are attributed to these outliers.
3) How does 2 set of profiles differ? Say one set is collected on a high-end machine, one is collected a slow netbook. Which areas of the profiles vary the most? How does performance of specific code path vary (Basic vs. Accelerated Compositing on startup for example).
Reporter | ||
Comment 1•12 years ago
|
||
After a bit of hacking I'm already coming up with interesting results but I have many improvements yet to do. Here's a list of 'interesting' functions for start-up. Note that nothing is hard coded:
CFRunLoopRunSpecific (in CoreFoundation) + 290
gfx::DrawThebesLayer
Input::nsInputStreamPump::OnInputStreamReady
JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (in XUL) + 154
js::RunScript
js::RunScript(JSContext*, JS::Handle<JSScript*>, js::StackFrame*) (in XUL) + 206
mozilla::layers::ContainerLayerOGL::RenderLayer(int, nsIntPoint const&) (in XUL) + 1400
nsAppShell::Run() (in XUL) + 50
nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool, unsigned int) (in XUL) + 226
nsDocLoader::OnStopRequest(nsIRequest*, nsISupports*, tag_nsresult) (in XUL) + 477
nsDocumentOpenInfo::OnStopRequest(nsIRequest*, nsISupports*, tag_nsresult) (in XUL) + 90
nsRefreshDriver::Notify
nsThread::ProcessNextEvent(bool, bool*) (in XUL) + 717
nsTimerImpl::Fire() (in XUL) + 448
nsViewManager::PaintWindow(nsIWidget*, nsIntRegion, unsigned int) (in XUL) + 156
nsXULDocument::EndUpdate(unsigned int) (in XUL) + 14
nsXULDocument::StartLayout() (in XUL) + 169
NS_ProcessNextEvent_P(nsIThread*, bool) (in XUL) + 48
NS_ProcessPendingEvents_P(nsIThread*, unsigned int) (in XUL) + 76
Paint::PresShell::Paint
ssi_restoreHistoryPrecursor (resource:///modules/sessionstore/SessionStore.jsm:2891)
ssi_restoreWindow (resource:///modules/sessionstore/SessionStore.jsm:2622)
Startup::XRE_Main
Timer::Fire
XREMain::XRE_main(int, char**, nsXREAppData const*) (in XUL) + 269
XREMain::XRE_main(int, char**, nsXREAppData const*) (in XUL) + 455
It finds session store, js, paint and compositing right off the bat. I think nailing down 1) will give us a good primitive to solve 2) and 3).
Reporter | ||
Comment 2•12 years ago
|
||
Note that my work and a dataset of 10 mac startup profiles are posted:
https://github.com/bgirard/SPSProcessor
Comment 3•8 years ago
|
||
This is an interesting experiment but I'm going to close this bug for now because we have no plans for automatic profile submission + processing at the moment.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•