You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2013/04/18 19:52:32 UTC

svn commit: r1469496 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio: AllInOne.java CasPipeline.java

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);
+	    }
+	}
 }