lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dawid Weiss <dawid.we...@cs.put.poznan.pl>
Subject Re: svn commit: r1141510 - /lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/UnsafeByteArrayOutputStream.java
Date Thu, 30 Jun 2011 13:11:20 GMT
Arrays.copyOf(primitive) is actually System.arraycopy by default. If
intrinsics are used it can only get faster. For object types it will
probably be a bit slower for -client because of a runtime check for
the component type.

Dawid

On Thu, Jun 30, 2011 at 3:05 PM, Robert Muir <rcmuir@gmail.com> wrote:
> 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/UnsafeByteArrayOutputStream.java
>>>
>>> Modified: lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/UnsafeByteArrayOutputStream.java
>>> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/UnsafeByteArrayOutputStream.java?rev=1141510&r1=1141509&r2=1141510&view=diff
>>> ==============================================================================
>>> --- lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/UnsafeByteArrayOutputStream.java
(original)
>>> +++ lucene/dev/trunk/modules/facet/src/java/org/apache/lucene/util/UnsafeByteArrayOutputStream.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