jscanner

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 0c9cf3e014fcdb2b3db790accccbe9c8425f5e5f
parent 05d1676032a732c72fb03ac358f8e3cdbb498a95
Author: Matthias Jaros <jaros@mailbox.org>
Date:   Thu, 22 Jan 2026 21:39:21 +0100

Added baseline fd

Diffstat:
Msrc/main/java/com/it_jaros/networkScanner/App.java | 1+
Msrc/main/java/com/it_jaros/networkScanner/FdCounter.java | 6++++++
2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/it_jaros/networkScanner/App.java b/src/main/java/com/it_jaros/networkScanner/App.java @@ -17,6 +17,7 @@ public class App { fd.start(20); // sample every 20ms List<Integer> openPorts = scanner.scanPorts(target, 10000); printPorts(target, openPorts); + System.out.println("FD baseline: " + fd.baseline()); System.out.println("FD limit: " + fd.maxFds()); System.out.println("Peak open FDs during scan: " + fd.peakOpenFds()); } diff --git a/src/main/java/com/it_jaros/networkScanner/FdCounter.java b/src/main/java/com/it_jaros/networkScanner/FdCounter.java @@ -14,8 +14,10 @@ public final class FdCounter implements AutoCloseable { 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); @@ -29,6 +31,10 @@ public final class FdCounter implements AutoCloseable { public long maxFds() { return os.getMaxFileDescriptorCount(); } + + public long baseline() { + return this.baseline; + } @Override public void close() { ses.shutdownNow();