From 3475b63496ec22939a0556b6744422be949d7530 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Sun, 11 Oct 2015 16:13:42 +0200 Subject: [PATCH] command line argument to print statistics of the decompilation performance --- .../console/CommandLineArgumentParser.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java b/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java index 2ecc98a73..b4d8a147c 100644 --- a/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java +++ b/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java @@ -116,6 +116,8 @@ import com.jpexs.decompiler.graph.CompilationException; import com.jpexs.helpers.CancellableWorker; import com.jpexs.helpers.Helper; import com.jpexs.helpers.Path; +import com.jpexs.helpers.stat.StatisticData; +import com.jpexs.helpers.stat.Statistics; import com.jpexs.helpers.streams.SeekableInputStream; import com.jpexs.helpers.utf8.Utf8Helper; import com.sun.jna.Platform; @@ -160,6 +162,8 @@ public class CommandLineArgumentParser { private static boolean commandLineMode = false; + private static boolean showStat = false; + private static String stdOut = null; private static String stdErr = null; @@ -379,6 +383,11 @@ public class CommandLineArgumentParser { out.println(" ...export timeout for a single AS3 class in seconds"); } + if (filter == null || filter.equals("stat")) { + out.println(" " + (cnt++) + ") -stat"); + out.println(" ...show export performance statistics"); + } + if (filter == null || filter.equals("flashpaper2pdf")) { out.println(" " + (cnt++) + ") -flashpaper2pdf "); out.println(" ...converts FlashPaper SWF file to PDF . Use -zoom parameter to specify image quality."); @@ -568,6 +577,9 @@ public class CommandLineArgumentParser { case "-exportfiletimeout": parseExportFileTimeout(args); break; + case "-stat": + parseStat(args); + break; case "-stdout": parseStdOut(args); break; @@ -946,6 +958,10 @@ public class CommandLineArgumentParser { } } + private static void parseStat(Stack args) { + showStat = true; + } + private static void parseStdOut(Stack args) { if (args.isEmpty()) { System.err.println("stdOut parameter expected"); @@ -1228,6 +1244,8 @@ public class CommandLineArgumentParser { as3classes.addAll(selectionClasses); } + Map stat = new HashMap<>(); + try { File[] inFiles; boolean singleFile = true; @@ -1440,6 +1458,12 @@ public class CommandLineArgumentParser { List as3packs = as3classes.isEmpty() ? null : swf.getScriptPacksByClassNames(as3classes); exportOK = swf.exportActionScript(handler, scriptsFolder, as3classes.isEmpty() ? null : as3packs, scriptExportSettings, parallel, evl, exportAs2Script, exportAs3Script) != null && exportOK; } + + if (showStat) { + Statistics.print(); + Statistics.addToMap(stat); + Statistics.clear(); + } } if (exportFormats.contains("fla")) { @@ -1475,6 +1499,10 @@ public class CommandLineArgumentParser { System.exit(1); } + if (showStat) { + Statistics.print(stat); + } + long stopTime = System.currentTimeMillis(); long time = stopTime - startTime; System.out.println("Export finished. Total export time: " + Helper.formatTimeSec(time));