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() {