diff options
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/FdCounter.java')
| -rw-r--r-- | src/main/java/com/it_jaros/networkScanner/FdCounter.java | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/FdCounter.java b/src/main/java/com/it_jaros/networkScanner/FdCounter.java deleted file mode 100644 index ae38ec2..0000000 --- a/src/main/java/com/it_jaros/networkScanner/FdCounter.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.it_jaros.networkScanner; - -import java.lang.management.ManagementFactory; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicLong; - -import com.sun.management.UnixOperatingSystemMXBean; - -public final class FdCounter implements AutoCloseable { - private final UnixOperatingSystemMXBean os = - (UnixOperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); - private final ScheduledExecutorService ses = - Executors.newSingleThreadScheduledExecutor(Thread.ofPlatform().daemon().factory()); - private final AtomicLong peak = new AtomicLong(0); - private long baseline; - - public void start(long everyMillis) { - this.baseline = os.getOpenFileDescriptorCount(); - ses.scheduleAtFixedRate(() -> { - long now = os.getOpenFileDescriptorCount(); - peak.accumulateAndGet(now, Math::max); - }, 0, everyMillis, TimeUnit.MILLISECONDS); - } - - public long peakOpenFds() { - return peak.get(); - } - - public long maxFds() { - return os.getMaxFileDescriptorCount(); - } - - public long baseline() { - return this.baseline; - } - - @Override public void close() { - ses.shutdownNow(); - } -} - |
