--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Lookup.java 2014/09/11 16:42:08 2207 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Lookup.java 2014/09/22 07:39:46 2227 @@ -2,14 +2,14 @@ import java.io.File; import java.io.FileReader; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.Queue; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.logging.SimpleFormatter; import dk.daoas.fulddaekning.BoundingBox.BoundingBoxException; @@ -37,16 +37,21 @@ static Statistik flestDaekkede = new Statistik(); static Statistik flestIkkeDaekkede = new Statistik(); + static Statistik mestBrugteTid = new Statistik(); + static Statistik stoersteDataset = new Statistik(); static class Statistik { int postnr; int antalDaekkede = 0; int antalIkkeDaekkede = 0; + int totalDataset = 0; + long forbrugtTid = 0; + @Override public String toString() { - return "postnr=" + postnr + " antalIkkeDaekkede=" + antalIkkeDaekkede + " antalDaekkede=" + antalDaekkede; + return "postnr=" + postnr + " antalIkkeDaekkede=" + antalIkkeDaekkede + " antalDaekkede=" + antalDaekkede + " forbrugtTid=" + forbrugtTid + " totalDataset=" + totalDataset; } } @@ -62,7 +67,15 @@ } if (stat.antalIkkeDaekkede > flestIkkeDaekkede.antalIkkeDaekkede) { flestIkkeDaekkede = stat; - } + } + + if (stat.totalDataset > mestBrugteTid.totalDataset) { + stoersteDataset = stat; + } + + if (stat.forbrugtTid > mestBrugteTid.forbrugtTid) { + mestBrugteTid = stat; + } } public void doLookup() throws BoundingBoxException { @@ -90,9 +103,8 @@ stat.postnr = postnr; stat.antalDaekkede = daekkedeAdresser.length; stat.antalIkkeDaekkede = queue.size(); - - saveStatistics(stat); - + stat.totalDataset = stat.antalDaekkede * stat.antalIkkeDaekkede; + logger.info("Starter beregning for " + postnr); start2 = System.currentTimeMillis(); @@ -109,6 +121,8 @@ Thread.sleep(10);//wait for worker threads } + db.saveBatch();//Save any unsaved rows + } catch(Exception e) { logger.log(Level.WARNING, "Exception during lookup", e); @@ -121,6 +135,8 @@ } long now = System.currentTimeMillis(); + stat.forbrugtTid = (now-start1); + saveStatistics(stat); logger.info( stat.toString() ); logger.info("Done! elapsed=" + (now-start1) + "/" + (now-start2) + " postnr=" + postnr); @@ -166,6 +182,15 @@ public static void main(String[] args) throws Exception { + //Setup j.u.l Logger + Logger root = Logger.getLogger(""); + FileHandler fhandler = new FileHandler("fulddaekning.log"); // Ingen max størrelse, ingen rotation og ingen append + fhandler.setFormatter( new SimpleFormatter() ); + root.addHandler( fhandler ); + + + + File confFile = new File( CONFIG_FILENAME ); if (! confFile.exists() ) { logger.warning("Config file not found: " + CONFIG_FILENAME); @@ -198,7 +223,7 @@ long start = System.currentTimeMillis(); - /* + logger.info("Finder postnumre"); List postnumre = db.hentPostnumre(); @@ -225,19 +250,32 @@ } long now = System.currentTimeMillis(); + long elapsed = now - start ; + logger.info("Mest brugte tid: " + mestBrugteTid); logger.info("Flest Ikke-dækkede, " + flestIkkeDaekkede); logger.info("Flest Dækkede, " + flestDaekkede); - logger.info("Fuld load done : " + (now-start) ); -*/ - + logger.info("Største Dataset, " + stoersteDataset); + logger.info("Fuld load done : " + formatMilliSeconds(elapsed) ); + + /* /// Test db.resetResultTable(); Lookup lookup = new Lookup(2750, db); lookup.doLookup(); long now = System.currentTimeMillis(); - logger.info("Fuld load done : " + (now-start) ); + long elapsed = now - start ; + logger.info("Fuld load done : " + formatMilliSeconds(elapsed) );*/ + } + + static String formatMilliSeconds(long milliseconds) { + int mseconds = (int) milliseconds % 1000; + int seconds = (int) (milliseconds / 1000) % 60 ; + int minutes = (int) ((milliseconds / (1000*60)) % 60); + int hours = (int) ((milliseconds / (1000*60*60)) % 24); + + return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, mseconds); } }