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
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