Closed
Bug 978262
Opened 12 years ago
Closed 12 years ago
Ignore duplicate frames when getting stack for background hang
Categories
(Core :: XPCOM, defect)
Core
XPCOM
Tracking
()
RESOLVED
FIXED
mozilla30
People
(Reporter: jchen, Assigned: jchen)
Details
Attachments
(1 file)
|
1.35 KB,
patch
|
froydnj
:
review+
|
Details | Diff | Splinter Review |
For re-entrant pseudo-stack frames like "nsAppShell::ProcessNextNativeEvent" and "js::RunScript", it's not very helpful to have many of the same frames in a row. We should avoid that to save some memory, storage, and bandwidth.
| Assignee | ||
Comment 1•12 years ago
|
||
This patch deduplicates identical, consecutive frames to save memory, storage, and bandwidth. It also allows us to better match other similar stacks.
Attachment #8383949 -
Flags: review?(nfroyd)
Comment 2•12 years ago
|
||
Comment on attachment 8383949 [details] [diff] [review]
Ignore duplicate frames when getting BHR stack (v1)
Review of attachment 8383949 [details] [diff] [review]:
-----------------------------------------------------------------
This change affects not only the hang monitor, but it affects the profiler, too, right?
::: xpcom/threads/ThreadStackHelper.cpp
@@ +193,3 @@
> }
> + const char* const label = entry->label();
> + if (label == prevLabel) {
This comparison can be pointer comparison rather than string comparison because this is only ever comparing pseudo-stack labels, which are essentially interned, correct?
| Assignee | ||
Comment 3•12 years ago
|
||
(In reply to Nathan Froyd (:froydnj) from comment #2)
> Comment on attachment 8383949 [details] [diff] [review]
> Ignore duplicate frames when getting BHR stack (v1)
>
> Review of attachment 8383949 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> This change affects not only the hang monitor, but it affects the profiler,
> too, right?
It only affects the hang monitor because the profiler handles the pseudo-stack internally and doesn't use ThreadStackHelper.
> ::: xpcom/threads/ThreadStackHelper.cpp
> @@ +193,3 @@
> > }
> > + const char* const label = entry->label();
> > + if (label == prevLabel) {
>
> This comparison can be pointer comparison rather than string comparison
> because this is only ever comparing pseudo-stack labels, which are
> essentially interned, correct?
Yup!
Comment 4•12 years ago
|
||
Comment on attachment 8383949 [details] [diff] [review]
Ignore duplicate frames when getting BHR stack (v1)
Review of attachment 8383949 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks for the clarifications!
Attachment #8383949 -
Flags: review?(nfroyd) → review+
| Assignee | ||
Updated•12 years ago
|
Keywords: checkin-needed
Comment 5•12 years ago
|
||
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
You need to log in
before you can comment on or make changes to this bug.
Description
•