-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preserve all ancestors of nodes that weren't filtered out #2
Conversation
Locally, with both master and this PR, when I subsample a snapshot from a fresh Julia session, I can still see results that are not quite right -- even with a relatively fresh Julia session, I can see a lot of Also, from a performance and memory pressure perspective, we don't need to create the # cumsum_edges = cumsum(nodes.edge_count)
function _mark!(seen, queue, node_idx, nodes, cumsum_edges)
get!(seen, node_idx) do
cumcnt = cumsum_edges[node_idx]
prev_cumcnt = get(cumsum_edges, node_idx-1, 0)
for child_node_idx in @view(nodes.edges.to_pos[prev_cumcnt+1:cumcnt])
get!(seen, child_node_idx) do
push!(queue, child_node_idx)
end
end
return nothing
end
end |
Will look into it. Thanks |
Actually, maybe the thing with |
correct |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this looks great! I think it would be great to also add a test that each retained node can be traced to a root, then let's merge!
I am going to merge it as it is for now. There are other issues that I found during testing and debugging. I will send out another PR to address them soon. |
This PR is to fix the issue Preserve all ancestors of nodes that weren't filtered out(#1). The changes are as follows.
Tested with 11GB of RAI engine heap snapshot and the ancestors were indeed shown up in the containment view in chrome Dev tools.