bloomfilter-rb 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,34 @@
1
+ $:<< 'lib'
2
+
3
+ require 'benchmark'
4
+ require 'bloomfilter-rb'
5
+
6
+ n = 10000
7
+
8
+ Benchmark.bm do |x|
9
+ r = BloomFilter::Redis.new
10
+
11
+ x.report("insert") do
12
+ n.times do
13
+ r.insert("a")
14
+ end
15
+ end
16
+
17
+ x.report("lookup present") do
18
+ n.times do
19
+ r.include?("a")
20
+ end
21
+ end
22
+
23
+ x.report("lookup missing") do
24
+ n.times do
25
+ r.include?("b")
26
+ end
27
+ end
28
+
29
+ end
30
+
31
+ # user system total real
32
+ # insert 1.000000 0.380000 1.380000 ( 1.942181)
33
+ # lookup present 1.030000 0.470000 1.500000 ( 2.577577)
34
+ # lookup missing 0.370000 0.160000 0.530000 ( 1.060429)
@@ -26,8 +26,13 @@ module BloomFilter
26
26
 
27
27
  def include?(*keys)
28
28
  keys.each do |key|
29
+ indexes = []
30
+ indexes_for(key) { |idx| indexes << idx }
31
+
32
+ return false if @db.getbit(@opts[:namespace], indexes.shift) == 0
33
+
29
34
  result = @db.pipelined do
30
- indexes_for(key) do |idx|
35
+ indexes.each do |idx|
31
36
  @db.getbit(@opts[:namespace], idx)
32
37
  end
33
38
  end
@@ -1,3 +1,3 @@
1
1
  module BloomFilter
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: bloomfilter-rb
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.1.0
5
+ version: 2.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ilya Grigorik
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-03-30 00:00:00 -04:00
14
+ date: 2011-03-31 00:00:00 -04:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -63,6 +63,7 @@ files:
63
63
  - Gemfile.lock
64
64
  - README.md
65
65
  - Rakefile
66
+ - benchmark/redis-bm.rb
66
67
  - bloomfilter-rb.gemspec
67
68
  - examples/counting-redis.rb
68
69
  - examples/pure-ruby-bf.rb