Skip to content

Three minutes in _computeCallNodeTableHierarchy during loading of a profile with lots of sibling nodes #5957

@mstange

Description

@mstange

Loading https://share.firefox.dev/4czHTvb spends an extremely long time building the call node table.


When we add a new sibling to the call node table, we try to find an existing sibling node by walking a linked list of siblings. In this profile there's barely any reuse of siblings, so we create a new sibling after every one of these searches. This is O(n^2) in the number of siblings.

Not sure what to do about this - we can't have a hashmap per parent node.

The actual reason for the high number of siblings is that the V8 jitdump info seems to have been incomplete, which resulted in a lot of unsymbolicated JIT addresses.

┆Issue is synchronized with this Jira Task

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions