Do you feel like looking for all currentTimeMilis () call sites to check if similar fixes can be applied? Gary
-------- Original message -------- From: [email protected] Date: 06/10/2015 08:32 (GMT-08:00) To: [email protected] Subject: logging-log4j2 git commit: LOG4J2-1048 FileConfigurationMonitor unnecessarily calls System.currentTimeMillis causing high CPU usage. Repository: logging-log4j2 Updated Branches: refs/heads/master 1765760ab -> 4c95866dc LOG4J2-1048 FileConfigurationMonitor unnecessarily calls System.currentTimeMillis causing high CPU usage. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4c95866d Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4c95866d Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4c95866d Branch: refs/heads/master Commit: 4c95866dc3fcfa109730c9843da144c5bf4599ae Parents: 1765760 Author: rpopma <[email protected]> Authored: Thu Jun 11 00:32:14 2015 +0900 Committer: rpopma <[email protected]> Committed: Thu Jun 11 00:32:14 2015 +0900 ---------------------------------------------------------------------- .../logging/log4j/core/config/FileConfigurationMonitor.java | 4 ++-- src/changes/changes.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c95866d/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java index 38f64cf..f145696 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java @@ -73,8 +73,8 @@ public class FileConfigurationMonitor implements ConfigurationMonitor { */ @Override public void checkConfiguration() { - final long current = System.currentTimeMillis(); - if (((counter.incrementAndGet() & MASK) == 0) && (current >= nextCheck)) { + final long current; + if (((counter.incrementAndGet() & MASK) == 0) && ((current = System.currentTimeMillis()) >= nextCheck)) { LOCK.lock(); try { nextCheck = current + intervalSeconds; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c95866d/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index eef3aa4..e22441f 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -24,6 +24,9 @@ </properties> <body> <release version="2.4" date="2015-MM-DD" description="GA Release 2.4"> + <action issue="LOG4J2-1048" dev="rpopma" type="fix" due-to="Nikhil"> + FileConfigurationMonitor unnecessarily calls System.currentTimeMillis causing high CPU usage. + </action> <action issue="LOG4J2-1023" dev="ggregory" type="add" due-to="Mikael St��ldal"> New RewritePolicy for changing level of a log event. </action>
