[ 
https://issues.apache.org/jira/browse/SPARK-2354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14060156#comment-14060156
 ] 

Sean Owen commented on SPARK-2354:
----------------------------------

These end up with the same effect.

Let's say A is created with numBits=50 and B is created with numBits=70. A will 
have a capacity of 64 and B will have a capacity of 128, since they internally 
allocate 1 and 2 longs of storage, respectively.

A|B needs to accommodate at least 70 bits, yes. Whether it is created with 
numBits=70 (your suggestion) or numBits=128 (the current code), you end up with 
a capacity of 128.

Nothing is being expanded needlessly; the result is the same.
I think the current code is fine.

> BitSet Range Expanded when creating new one
> -------------------------------------------
>
>                 Key: SPARK-2354
>                 URL: https://issues.apache.org/jira/browse/SPARK-2354
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Core
>    Affects Versions: 1.0.0, 1.1.0
>            Reporter: Yijie Shen
>            Priority: Minor
>
> BitSet has a constructor parameter named "numBits: Int" and indicate the bit 
> num inside.
> And also, there is a function called "capacity" which represents the long 
> words number to hold the bits.
> When creating new BitSet,for example in '|', I thought the new created one 
> shouldn't be the size of longer words' length, instead, it should be the 
> longer set's num of bit
> {code}def |(other: BitSet): BitSet = {
>     val newBS = new BitSet(math.max(numBits, other.numBits)) 
> // I know by now the numBits isn't a field
> {code}
> Does it have any other reason to expand the BitSet range I don't know?



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to