[ https://issues.apache.org/jira/browse/IMAGING-95?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Damjan Jovanovic resolved IMAGING-95. ------------------------------------- Resolution: Fixed Fix Version/s: 1.0 Fixed. Thank you for your patch! > 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 > Fix For: 1.0 > > Attachments: tiff_perf_fix2.patch > > > 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 and 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