Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Pool analyzer diagnostic reporters #39034
This has shown up as a significant source of allocations. The design
Note: I don't think this is that much faster -- my machine wasn't completely quiet during the noise measurements, but I do believe that bytes allocated is accurate and a significant improvement.
This has shown up as a significant source of allocations. The design here is that when an analyzer reports a diagnostic we may need to filter or alter it based on some configuration. Previously we stored the configuration information by closing over captured variables, but that could be very expensive if it's being done for every analyzer invocation. Since we can only really execute one analyzer per running thread on the machine, the actual number of concurrent objects we need to create is approximately the number of running threads. Pooling is a good solution to this problem.