Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.3
-
None
Description
I am observing some high system CPU usage as a result of high number of calls to System.currentTimeMillis() in FileConfigurationMonitor.checkConfiguration() method.
The checkConfiguration() method is called as part of Logger's every log/logIfEnabled and isEnabled method, therefore getting called thousands of times in my application when under moderate load. Each one of these calls therefore results in calling System.currentTimeMillis().
The following code change, where the currentTimeMillis() is called only when required seemed to reduce the cpu load
final long current = System.currentTimeMillis();
if(((counter.incrementAndGet() & MASK) == 0) && (current >= nextCheck))
Fixed as
final long current; if (((counter.incrementAndGet() & MASK) == 0) && ((current = System.currentTimeMillis()) >= nextCheck)) {
Attachments
Attachments
Issue Links
- is superceded by
-
LOG4J2-982 Use System.nanoTime() to measure time intervals
- Open