From 0787bd9163690429f5c12c64eecba79922fd0943 Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Mon, 9 Mar 2026 16:33:02 +0100 Subject: Changed result Queue to BitSet, which is more memory efficient --- src/main/java/com/it_jaros/networkScanner/Scanner.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/it_jaros/networkScanner/Scanner.java') diff --git a/src/main/java/com/it_jaros/networkScanner/Scanner.java b/src/main/java/com/it_jaros/networkScanner/Scanner.java index f5205d5..86e343d 100644 --- a/src/main/java/com/it_jaros/networkScanner/Scanner.java +++ b/src/main/java/com/it_jaros/networkScanner/Scanner.java @@ -6,9 +6,8 @@ import java.net.Socket; import java.net.SocketException; import java.net.SocketTimeoutException; import java.util.ArrayList; +import java.util.BitSet; import java.util.List; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -63,7 +62,7 @@ public class Scanner { private ScanResult scanTarget(String target, String ports) { PortRange portRange = new PortRange(ports); AtomicLong portSlotFactory = new AtomicLong(System.nanoTime()); - Queue openPorts = new ConcurrentLinkedQueue<>(); + BitSet openPorts = new BitSet(PortRange.MAX_PORT); Progress progress = new Progress(target, portRange.getTotal(), new AtomicInteger(), new AtomicInteger()); progressBar.submit(progress); @@ -79,7 +78,7 @@ public class Scanner { try { int port = f.get(); if (port != -1) { - openPorts.add(port); + openPorts.set(port); progress.open().incrementAndGet(); } } catch (InterruptedException | ExecutionException e) { -- cgit v1.3.1