Skip to content

@jentfoo jentfoo released this Jun 19, 2018 · 78 commits to master since this release

This release includes a variety of improvements to the utility Profiler:

  • Thread names are checked at polling time, so if threads are renamed we will try to indicate the different names we witnessed
  • Profiled threads are now sorted by their name, hopefully grouping similar threads together
  • Common stack traces (like idle PriorityScheduler threads for example) are now simplified in Profiler output
  • Minor performance improvements and memory usage reductions

Other improvements:

  • TestCondition was improved to allow a Supplier<T> / Predicate<T> constructor, so that on failure the last result / condition can be reported
  • ListenableFuture.mapFailure generics improvements. Not likely to be realized except for in very specific situations.

Other changes / deprecations:

  • StripedLock is deprecated for removal (if you want this maintained in 6.0 please open an issue). PR #239 and #240 removed our internal use of it by instead using Map.compute as a way of doing per-key memory barriers. Feel free to open an issue if you want to discuss maintaining it. Current thoughts are that those changes are likely simpler (despite the complexity of capturing results from inside compute blocks). This also resulted in several constructors where an estimated parallismLevel could be specified in being deprecated. As those PR's show other internal (but otherwise should be transparent) changes were done to support this.
  • DoNothingRunnable should no longer be constructed, but instead referenced by DoNothingRunnable.instance()
  • KeyedRateLimiterExecutor no longer schedules a task per key. Instead it has a single task to examine all keys. This may result in limiters living a bit longer, but should overall perform better under heavy load.
Assets 4
You can’t perform that action at this time.