Author: degenaro Date: Thu Apr 18 17:52:31 2013 New Revision: 1469496 URL: http://svn.apache.org/r1469496 Log: UIMA-2793 Gather and display UIMA Component Statistics after last CAS is processed
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasPipeline.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java?rev=1469496&r1=1469495&r2=1469496&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java Thu Apr 18 17:52:31 2013 @@ -42,6 +42,8 @@ public class AllInOne extends CliBase { private JobRequestProperties jobRequestProperties = new JobRequestProperties(); + private boolean showStats = true; + CasGenerator casGenerator; CasPipeline casPipeline; @@ -117,12 +119,19 @@ public class AllInOne extends CliBase { mh.frameworkTrace(cid, mid, "exit"); } + private void statistics() { + if(showStats) { + casPipeline.dumpStatistics(System.out); + } + } + public void go() throws Exception { String mid = "go"; mh.frameworkTrace(cid, mid, "enter"); examine(); initialize(); process(); + statistics(); mh.frameworkTrace(cid, mid, "exit"); } Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasPipeline.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasPipeline.java?rev=1469496&r1=1469495&r2=1469496&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasPipeline.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasPipeline.java Thu Apr 18 17:52:31 2013 @@ -21,6 +21,7 @@ package org.apache.uima.ducc.cli.aio; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.PrintStream; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -29,6 +30,7 @@ import java.util.Properties; import org.apache.uima.UIMAFramework; import org.apache.uima.analysis_engine.AnalysisEngine; import org.apache.uima.analysis_engine.AnalysisEngineDescription; +import org.apache.uima.analysis_engine.AnalysisEngineManagement; import org.apache.uima.analysis_engine.AnalysisEngineProcessException; import org.apache.uima.cas.CAS; import org.apache.uima.ducc.cli.IUiOptions.UiOption; @@ -162,4 +164,25 @@ public class CasPipeline { ae.process(cas); return cas; } + + public void dumpStatistics(PrintStream out) { + out.println(""); + out.println("+---------------------------+"); + out.println("| UIMA Component Statistics |"); + out.println("+---------------------------+"); + out.println(""); + AnalysisEngineManagement aem = ae.getManagementInterface(); + dumpComponentStatistics(out, 0, aem); + } + + private static void dumpComponentStatistics(PrintStream out, int level, AnalysisEngineManagement aem) { + String indent = ""; + for (int i = 0; i < level; i++) { + indent += " "; + } + out.println(indent+aem.getName()+": "+aem.getAnalysisTime()+"ms, "); + for (AnalysisEngineManagement childAem : (Iterable<AnalysisEngineManagement>) (aem.getComponents().values())) { + dumpComponentStatistics(out, level+1, childAem); + } + } }