Use bounded ThreadPoolExecutor for async notify calls #145
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We noticed performance issues when making several calls to
Bugsnag#notify
in a short period of time. It turns out that it's because it is usingExecutors#newCachedThreadPool
which creates as many new threads as needed. This can quickly overload the system, cause lots of GC overhead and even ANRs.Just used the
AsyncTask#THREAD_POOL_EXECUTOR
settings here and made it a tiny bit more conservative.Also updated the dependencies while I was at it for convenience, but if you don't want that in this PR, I'd be happy to revert them.