Logging is slow
performancelogging
In a single multithreaded process, logging with `MultiEventLog` brings massive overheads. For 8 threads and 40 graphs ~800 vertices each we observe ~7x application slow down and ~26x increase of lock conflicts. With the overhead this big logging isn't very useful as it considerably alters the application (way more time is spent on logging than on running the actual application)
Without logging
```txt
Pipeline (throughput 1.00 events/s): 40.097314 seconds (62.55 M allocations: 3.252 GiB, 3.20% gc time, 128376 lock conflicts, 0.47% compilation time)
```
With logging
```julia
Dagger.enable_logging!(tasknames = true,
taskfuncnames = true,
taskdeps = true,
taskargs = true,
taskargmoves = true,
taskresult = true,
taskuidtotid = true,
tasktochunk = true)
```
```txt
Pipeline (throughput 0.14 events/s): 290.967248 seconds (233.25 M allocations: 19.686 GiB, 4.86% gc time, 3346075 lock conflicts, 0.00% compilation time)
```
3 条评论