Avoid periodic object allocations in IndexService

This commit wraps a trace logging message in a trace logging level check
to prevent allocating an Object array (to hold the logging parameters)
and a String (from the interval) when trace logging is not enabled every
second (with the default index refresh interval) and every five seconds
(with the default translog sync interval) for every open index when
trace logging is not enabled.
This commit is contained in:
Jason Tedor 2016-01-15 15:05:16 -05:00
parent 1926fe5ad5
commit b4538a5676

View File

@ -688,7 +688,9 @@ public final class IndexService extends AbstractIndexComponent implements IndexC
private synchronized void onTaskCompletion() {
if (mustReschedule()) {
indexService.logger.trace("scheduling {} every {}", toString(), interval);
if (indexService.logger.isTraceEnabled()) {
indexService.logger.trace("scheduling {} every {}", toString(), interval);
}
this.scheduledFuture = threadPool.schedule(interval, getThreadPool(), BaseAsyncTask.this);
} else {
indexService.logger.trace("scheduled {} disabled", toString());