Selaa lähdekoodia

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.
Jason Tedor 9 vuotta sitten
vanhempi
commit
b4538a5676
1 muutettua tiedostoa jossa 3 lisäystä ja 1 poistoa
  1. 3 1
      core/src/main/java/org/elasticsearch/index/IndexService.java

+ 3 - 1
core/src/main/java/org/elasticsearch/index/IndexService.java

@@ -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());