You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2015/03/12 13:58:29 UTC
svn commit: r1666172 -
/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDesPerformance.java
Author: schor
Date: Thu Mar 12 12:58:29 2015
New Revision: 1666172
URL: http://svn.apache.org/r1666172
Log:
[UIMA-4283] add a performance test driver to test cases - it's disabled but can be enabled when tuning measurements are wanted, by providing a directory somewhere of CASs to deserialize.
Added:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDesPerformance.java
Added: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDesPerformance.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDesPerformance.java?rev=1666172&view=auto
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDesPerformance.java (added)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDesPerformance.java Thu Mar 12 12:58:29 2015
@@ -0,0 +1,60 @@
+package org.apache.uima.cas.impl;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.util.CasCreationUtils;
+import org.apache.uima.util.XMLInputSource;
+
+import junit.framework.TestCase;
+
+public class BinaryCasSerDesPerformance extends TestCase {
+
+ // Note: This test case requires an input directory that has
+ // 1) a file typesystem.xml which has the type system for the serialized files
+ // 2) a bunch of files having compressed serialized CASes
+ // Set the directory in the 2nd line below
+ public void testBinaryCasDeserialization6Performance() throws Exception {
+
+ File dir = new File("" /*"/au/t/data/bin-compr-6/shakespeare.txt_40_processed"*/);
+
+ if (!dir.exists()) return;
+
+ File typeSystemFile = new File(dir, "typesystem.xml");
+ XMLInputSource in = new XMLInputSource(typeSystemFile);
+ TypeSystemDescription typeSystemDescription = UIMAFramework.getXMLParser().parseTypeSystemDescription(in);
+ CAS cas = CasCreationUtils.createCas(typeSystemDescription, null, null);
+
+ long accumDeser = 0;
+ long accumSer = 0;
+ for (int i = 0; i <10; i++) {
+ for (final File f : dir.listFiles()) {
+ if (f.getName().equals("typesystem.xml")) {
+ continue;
+ }
+ InputStream inputStream = new BufferedInputStream(new FileInputStream(f));
+ cas.reset();
+ long ist = System.nanoTime();
+ Serialization.deserializeCAS(cas, inputStream);
+ accumDeser += System.nanoTime() - ist;
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(1024*512);
+ ist = System.nanoTime();
+ Serialization.serializeWithCompression(cas, baos, cas.getTypeSystem());
+ accumSer += System.nanoTime() - ist;
+// System.out.format("Time to deserialize was %,d milliseconds, size = %d%n",
+// (System.nanoTime() - ist) / 1000000L, ((CASImpl)cas).getHeap().getHeapSize());
+ }
+ }
+ System.out.format("Time to deserialize all files was %,d milliseconds%n", accumDeser / 1000000); // (System.nanoTime() - startTime) / 1000000L);
+ System.out.format("Time to serialize all files was %,d milliseconds%n", accumSer / 1000000);
+ }
+
+}