This repository has been archived by the owner on Jul 16, 2022. It is now read-only.
Benchmark and Explore Optimization Opportunities for Graph Implementation #104
Labels
good first issue
Good for newcomers
ZIO ZMX needs to keep track of the graph of fibers within a ZIO program, that is which fibers are descendants of which other fibers. Currently ZIO ZMX uses the
Graph
data type inzio.xmx.graph
to do this, which represents an immutable graph.The first part of this ticket is to add benchmarks for the performance of ZIO ZMX when generating fiber dumps for ZIO programs that construct extremely large fiber graphs (e..g 100,000 fibers) with different structures (very "deep" trees where one fiber forks another fiber that forks another fiber many times, very "broad" trees where one fiber forks many fibers, mixtures of these two).
After that the next step would be to explore whether there is a more efficient representation that could be used. The current representation is something like
AtomicReference[Map[Fiber, Set[Fiber]]]
. Alternatively, it could be something likeConcurrentMap[Fiber, Set[Fiber]]
. We need the benchmarks to see if that is really an improvement.The text was updated successfully, but these errors were encountered: