Open yilongli opened 9 years ago
One thing to be aware of: we have "polluted" the Fork/Join framework with our logging code, so we cannot use the F/J framework or the parallel stream api in our own code.
I noticed in the LLVM TSan implementation that they have their own versions for a couple of classes which were used in the backend. Can't we do something similar here?
F/J framework and the parallel stream api are quite complicated. The stream api is also closely involved with the Collection/Map api. So it's not practical have our own versions of classes for them. Besides, we don't need them anyway to parallelize our code.
Right now the backend is completely single-threaded. I notice that it could be huge bottleneck when testing Eclipse. However, synchronization between threads is also very expensive. So the decision of what to parallelize must be done based on experiment. Perhaps it will be enough to only parallelize the event processing .