lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: svn commit: r1141510 - /lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/UnsafeByteArrayOutputStream.java
Date Thu, 30 Jun 2011 13:13:04 GMT
Robert, 

as noted in my other eMail, ist only slow for the generic Object[] method (as it uses j.l.reflect.Array.newInstance(Class
componentType)). We are talking here about byte[], and the Arrays method is implemented with
the same 3 lines of code, Simon replaced. The only difference is a Math.min() which is intrinsic
(it is used, as Arrays.copyOf supports shrinking size, so the System.arrayCopy() needs upper
limit to not AIOOBE).

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: Robert Muir [mailto:rcmuir@gmail.com]
> Sent: Thursday, June 30, 2011 3:05 PM
> To: dev@lucene.apache.org; simon.willnauer@gmail.com
> Cc: commits@lucene.apache.org
> Subject: Re: svn commit: r1141510 -
> /lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/Unsafe
> ByteArrayOutputStream.java
> 
> because on windows 32bit at least, -client is still the default on most jres out
> there.
> 
> i realize people don't care about -client, but i will police
> foo[].clone() / arrays.copyOf etc to prevent problems.
> 
> There are comments about this stuff on the relevant bug reports (oracle's
> site is down, sorry) linked to this issue.
> https://issues.apache.org/jira/browse/LUCENE-2674
> 
> Sorry, I don't think we should use foo[].clone() / arrays.copyOf, I think we
> should always use arraycopy.
> 
> On Thu, Jun 30, 2011 at 8:55 AM, Simon Willnauer
> <simon.willnauer@googlemail.com> wrote:
> > hmm are you concerned about the extra Math.min that happens in the
> > copyOf method?
> > I don't how that relates to "intrinsic" and java 1.7
> >
> > I don't have strong feelings here just checking if you mix something
> > up in the comment you put there... I am happy to keep the old and now
> > current code
> >
> > simon
> >
> > On Thu, Jun 30, 2011 at 2:42 PM,  <rmuir@apache.org> wrote:
> >> Author: rmuir
> >> Date: Thu Jun 30 12:42:17 2011
> >> New Revision: 1141510
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1141510&view=rev
> >> Log:
> >> LUCENE-3239: remove use of slow Arrays.copyOf
> >>
> >> Modified:
> >>
> >>
> lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/Unsafe
> >> ByteArrayOutputStream.java
> >>
> >> Modified:
> >>
> lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/Unsafe
> >> ByteArrayOutputStream.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/java/
> >>
> org/apache/lucene/util/UnsafeByteArrayOutputStream.java?rev=1141510&r
> >> 1=1141509&r2=1141510&view=diff
> >>
> ==========================================================
> ===========
> >> =========
> >> ---
> >>
> lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/Unsafe
> >> ByteArrayOutputStream.java (original)
> >> +++
> lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/Un
> >> +++ safeByteArrayOutputStream.java Thu Jun 30 12:42:17 2011
> >> @@ -2,7 +2,6 @@ package org.apache.lucene.util;
> >>
> >>  import java.io.IOException;
> >>  import java.io.OutputStream;
> >> -import java.util.Arrays;
> >>
> >>  /**
> >>  * Licensed to the Apache Software Foundation (ASF) under one or more
> >> @@ -72,7 +71,11 @@ public class UnsafeByteArrayOutputStream
> >>   }
> >>
> >>   private void grow(int newLength) {
> >> -    buffer = Arrays.copyOf(buffer, newLength);
> >> +    // It actually should be: (Java 1.7, when its intrinsic on all
> >> + machines)
> >> +    // buffer = Arrays.copyOf(buffer, newLength);
> >> +    byte[] newBuffer = new byte[newLength];
> >> +    System.arraycopy(buffer, 0, newBuffer, 0, buffer.length);
> >> +    buffer = newBuffer;
> >>   }
> >>
> >>   /**
> >>
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For
> > additional commands, e-mail: dev-help@lucene.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For additional
> commands, e-mail: dev-help@lucene.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message