-
‘centrally-planned object and thread pools’ for java. ‘In the default JVM thread pools, once a thread is created it will only be retired when it hasn’t performed a task in the last minute. In practice, this means that there are as many threads as the peak historical number of concurrent tasks handled by the pool, forever. These thread pools are also poorly instrumented, making it difficult to tune their latency or throughput. Dirigiste provides a fast, richly instrumented version of a java.util.concurrent.ExecutorService, and provides a means to feed that instrumentation into a control mechanism that can grow or shrink the pool as needed. Default implementations that optimize the pool size for thread utilization are provided. It also provides an object pool mechanism that uses a similar feedback mechanism to resize itself, and is significantly simpler than the Apache Commons object pool implementation.’ Great metric support, too.
(tags: async jvm dirigiste java threadpools concurrency utilization capacity executors object-pools object-pooling latency)