You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Looks like Olly collects stats when it gets EV_RING_STOP, but the child might not have exited by then. This reproduces it for me:
let () =
let domains = List.init 5 (fun _ ->
Domain.spawn (fun () ->
for _ = 1 to 10000000000 do
ignore (Sys.opaque_identity (ref ()))
done;
)
)
in
List.iter Domain.join domains;
Printf.printf "gdb attach -p %d\n%!" (Unix.getpid ());
Printf.printf "Then 'break exit' and 'continue'\n%!";
Printf.printf "Quit gdb when it hits the break-point.\n%!";
Unix.sleep 5
(the gdb thing is just to slow down the exit call a bit)
$ olly gc-stats './_build/default/main.exe'
gdb attach -p 271475
Then 'break exit' and 'continue'
Quit gdb when it hits the break-point.
Execution times:
Wall time (s): 21.18
CPU time (s): 1.01
GC time (s): 16.17
GC overhead (% of CPU time): 1605.17%
See description at https://roscidus.com/blog/blog/2024/07/22/performance-2/#:~:text=olly%20can%20be%20used%20get%20summary%20statistics%3A.
Todo: get reproduction steps.
CC @talex5.
The text was updated successfully, but these errors were encountered: