commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amit Gupta (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IMAGING-95) Some tiff processing takes very long
Date Mon, 15 Oct 2012 20:31:02 GMT
Amit Gupta created IMAGING-95:
---------------------------------

             Summary: Some tiff processing takes very long
                 Key: IMAGING-95
                 URL: https://issues.apache.org/jira/browse/IMAGING-95
             Project: Commons Imaging
          Issue Type: Bug
          Components: Format: TIFF
    Affects Versions: 1.0
            Reporter: Amit Gupta


org.apache.commons.imaging.formats.tiff.TiffReader.getTiffRawImageData(ByteSource, TiffDirectory)
226635	1
org.apache.commons.imaging.common.bytesource.ByteSourceInputStream.getBlock(int, int)	226588
5616
org.apache.commons.imaging.common.BinaryFileFunctions.skipBytes(InputStream, int)	226526	5616
org.apache.commons.imaging.common.BinaryFileFunctions.skipBytes(InputStream, int, String)
226526	5616
org.apache.commons.imaging.common.bytesource.ByteSourceInputStream$CacheReadingInputStream.read(byte[],
int, int)	226526	188656860
org.apache.commons.imaging.common.bytesource.ByteSourceInputStream$CacheBlock.getNext()	64581
188651244
skip bytes is being called repeatedly again and again, last column is invocation count in
one call tree. Second column is total number of time taken by that method in that call tree..

and skip method is not overridden org.apache.commons.imaging.common.bytesource.ByteSourceInputStream.CacheReadingInputStream
and default implementation of InputStream tries to use read method (which is overridden in
CacheReadingInputStream) to skip. 

In case of a tiff, which has large number of strips, skip is repeatedly called in use of read
is inefficient as it tried to do a System.arraycopy. array copy is not needed in case of skip
operation, as the bytes were already read in block/cached, we can simply jump the pointer
(block by block)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message