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/11 16:37:01 UTC

svn commit: r1665904 - in /uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl: BinaryCasSerDes4.java BinaryCasSerDes6.java

Author: schor
Date: Wed Mar 11 15:37:00 2015
New Revision: 1665904

URL: http://svn.apache.org/r1665904
Log:
[UIMA-4283] reduce one zip buffer size for both form 4 and 6 from 32K to 1K - was causing L1 cache dumping (I think) - and it speeds up some Java impls by more than 2x.

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java?rev=1665904&r1=1665903&r2=1665904&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java Wed Mar 11 15:37:00 2015
@@ -1852,7 +1852,7 @@ public class BinaryCasSerDes4 {
       Inflater inflater = new Inflater(true);
       inflaters[slotIndex] = inflater;  // save to be able to call end() when done. 
       ByteArrayInputStream baiStream = new ByteArrayInputStream(b);      
-      int zipBufSize = Math.max(32768, bytesCompr);
+      int zipBufSize = Math.max(1024, bytesCompr);
       InflaterInputStream iis = new InflaterInputStream(baiStream, inflater, zipBufSize);
       dataInputs[slotIndex] = new DataInputStream(new BufferedInputStream(iis, zipBufSize));
     }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java?rev=1665904&r1=1665903&r2=1665904&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java Wed Mar 11 15:37:00 2015
@@ -3493,9 +3493,12 @@ public class BinaryCasSerDes6 {
     Inflater inflater = new Inflater(true);
     inflaters[slotIndex] = inflater;  // save to be able to call end() when done. 
     ByteArrayInputStream baiStream = new ByteArrayInputStream(b);      
-    int zipBufSize = Math.max(32768, bytesCompr);
+    int zipBufSize = Math.max(1 << 10, bytesCompr); // 32768 == 1<< 15.  Tuned by trials on 2015 intel i7
+     // caches: L1 = 128KB    L2 = 1M     L3 = 6M
+     // increasing the max causes cache dumping on this machine, and things slow down
     InflaterInputStream iis = new InflaterInputStream(baiStream, inflater, zipBufSize);
-    dataInputs[slotIndex] = new DataInputStream(new BufferedInputStream(iis, zipBufSize));
+    // increasing the following buffer stream buffer size also seems to slow things down
+    dataInputs[slotIndex] = new DataInputStream(new BufferedInputStream(iis, zipBufSize * 1 ));
   }
   
   private void closeDataInputs() {