On 5/14/06, eks dev <[EMAIL PROTECTED]> wrote:
  It is faster than BitSet, even against Mustang. The numbers are a bit less 
than on Yonik's HW, but quite convincing.

The level of outperformance isn't quite as high on my work box, I
think because my home machine has higher memory bandwidth (both P4's
but mine has dual channel PC3200)

I did small test on my XP Notebook (Pentium M 1.6GHz). Only "union" test is 
some 20% slower on 8Mio size with 80k bits set. I did not dig deeper.

Weird... I'm not sure how that could be.  Are you sure you didn't get
the numbers reversed?
I just tried 1.6, and bitset/openbitset = 1.26 for me.
Are any memory controllers optimized for forward streaming more than
reverse?  My union loop counts down to zero, which is often faster
since the register status flags are already set as the result of the
decrement operation (hence avoiding an additional compare instruction
on most processor architectures, including x86).

$ c:/opt/jdk16/bin/java -version
java version "1.6.0-beta2"
Java(TM) SE Runtime Environment (build 1.6.0-beta2-b83)
Java HotSpot(TM) Client VM (build 1.6.0-beta2-b83, mixed mode, sharing)

[EMAIL PROTECTED] /cygdrive/f/code/solr/classes
$ c:/opt/jdk16/bin/java -server -Xbatch org.apache.solr.util.BitSetPerf 1000000
50 10000 union 3000 bit
ret=0
TIME=13203

[EMAIL PROTECTED] /cygdrive/f/code/solr/classes
$ c:/opt/jdk16/bin/java -server -Xbatch org.apache.solr.util.BitSetPerf 1000000
50 10000 union 3000 open
ret=0
TIME=10406

As you all know Big majority of bit vectors usually met in practice
are very to modestly
sparse due to Zipf…

Yeah, that's why I concentrated on performance of the dense bit
sets... when the set is sparse, bit sets take up too much room and
something else should be used anyway.

-Yonik
http://incubator.apache.org/solr Solr, the open-source Lucene search server

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to