goldshtn / msos

Command-line environment a-la WinDbg for executing SOS commands without having SOS available.
Other
96 stars 21 forks source link

Parallelize key algorithms for better performance #20

Open goldshtn opened 9 years ago

goldshtn commented 9 years ago

Notably, the graph traversal algorithms can be parallelized (especially the BFS-like ones) by having multiple threads pull from a queue of objects to traverse. Possibly the heap index building can be parallelized as well.

goldshtn commented 9 years ago

Started in 55c016f2561c892095cd8ba844ba5b871a4fa8bd, there are performance problems around locking heap operations, but the heap doesn't seem to be thread-safe. Filed an issue on https://github.com/Microsoft/dotnetsamples/issues/21 for this.

goldshtn commented 9 years ago

Now that I forked ClrMD anyway to make source-level changes, perhaps we can make the memory reader thread-safe, or find some other way to parallelize without having to create multiple DataTargets (which would be incredibly expensive because each one maps the complete dump file to memory).