[
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)