浏览代码

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 年之前
父节点
当前提交
b4538a5676
共有 1 个文件被更改,包括 3 次插入1 次删除
  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());