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