Return-Path: X-Original-To: apmail-commons-issues-archive@minotaur.apache.org Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 682A0D51C for ; Mon, 15 Oct 2012 20:33:04 +0000 (UTC) Received: (qmail 73029 invoked by uid 500); 15 Oct 2012 20:33:03 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 72952 invoked by uid 500); 15 Oct 2012 20:33:03 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 72916 invoked by uid 99); 15 Oct 2012 20:33:03 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Oct 2012 20:33:03 +0000 Date: Mon, 15 Oct 2012 20:33:03 +0000 (UTC) From: "Amit Gupta (JIRA)" To: issues@commons.apache.org Message-ID: <1748619534.47243.1350333183723.JavaMail.jiratomcat@arcas> In-Reply-To: <1332491254.47226.1350333063501.JavaMail.jiratomcat@arcas> Subject: [jira] [Updated] (IMAGING-95) Some tiff processing takes very long MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/IMAGING-95?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Amit Gupta updated IMAGING-95: ------------------------------ Attachment: tiff_perf_fix.patch patch for skipping array copy for skip operation > 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 > Attachments: tiff_perf_fix.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 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