Closed Bug 1363453 Opened 7 years ago Closed 7 years ago

The threadHangStats getter causes UI jank

Categories

(Toolkit :: Telemetry, defect, P4)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1369594
Performance Impact none

People

(Reporter: florian, Unassigned)

Details

See this profile where the main thread was blocked for 1380ms: https://perfht.ml/2qOEzaR

82% of that time is spent in GetFileVersionInfoSizeW, called with this stack:

GetFileVersionInfoSizeW
GetVersion(wchar_t *)
SharedLibraryInfo::GetInfoForSelf()
mozilla::Telemetry::GetStackAndModules(std::vector<unsigned int,std::allocator<unsigned int> > const &)
`anonymous namespace'::CreateJSHangHistogram
`anonymous namespace'::CreateJSThreadHangStats
`anonymous namespace'::TelemetryImpl::GetThreadHangStats
NS_InvokeByIndex
XPCWrappedNative::CallMethod(XPCCallContext &,XPCWrappedNative::CallMode)
XPC_WN_GetterSetter(JSContext *,unsigned int,JS::Value *)
js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct)
js::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,js::AnyInvokeArgs const &,JS::MutableHandle<JS::Value>)
CallGetter
GetPropertyOperation
Interpret
js::RunScript(JSContext *,js::RunState &)
assemblePayloadWithMeasurements/payloadObj.threadHangStats<
Markus, do you know about this?
Is Core::Gecko Profiler a suitable component for this?
Flags: needinfo?(mstange)
Core::Gecko Profiler is a suitable component for bugs in SharedLibraryInfo, but I think there's not much we can do about it being slow. I think Telemetry should try to call it on a background thread instead.
Flags: needinfo?(mstange)
Moving this work to a background thread will be more involved.
We can either:
- rework Telemetry ping generation to be in background (hard)
- run on-going background tasks to collect the SharedLibraryInfo
  -> we'd need to confirm that this is "mostly" collecting the data

However, this data is only collected when extended Telemetry is on (i.e. for pre-release and opt-in users).
I doubt this is high-priority for the current efforts, unless its masking some other issues.
Whiteboard: [qf]
Priority: -- → P4
qf- because it doesn't affect release users. Thanks for the explanation in comment 3, Georg!
Whiteboard: [qf] → [qf-]
This should be fixed by bug 1369594
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Performance Impact: --- → -
Whiteboard: [qf-]
You need to log in before you can comment on or make changes to this bug.