added a small benchmark
This commit is contained in:
parent
0cb40b86f2
commit
e14c7ee9ac
|
@ -1,5 +1,6 @@
|
||||||
# ignore test directories
|
# ignore test directories
|
||||||
spec/index_dir/*
|
spec/index_dir/*
|
||||||
|
benchmark/index_dir/*
|
||||||
tmp
|
tmp
|
||||||
|
|
||||||
# rcov generated
|
# rcov generated
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
||||||
|
require 'rubygems'
|
||||||
|
require 'benchmark'
|
||||||
|
require 'virtus'
|
||||||
|
require 'polecat'
|
||||||
|
|
||||||
|
class Document
|
||||||
|
include Virtus
|
||||||
|
|
||||||
|
attribute :name, Integer
|
||||||
|
attribute :text, String
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
FileUtils.rm_r 'benchmark/index_dir'
|
||||||
|
rescue
|
||||||
|
end
|
||||||
|
Dir.mkdir 'benchmark/index_dir'
|
||||||
|
writer = Polecat::IndexWriter.new 'benchmark/index_dir'
|
||||||
|
|
||||||
|
(1..50000).each do |i|
|
||||||
|
writer.add(Document.new(:name => i, :text => "Lorem #{i} Ipsum"))
|
||||||
|
end
|
||||||
|
|
||||||
|
writer.write
|
||||||
|
searcher = Polecat::IndexSearcher.new :reader => writer.create_reader
|
||||||
|
query = Polecat::Query.new.add(Polecat::Term.new(:name, :lt, 25000))
|
||||||
|
|
||||||
|
puts Benchmark.bm { |x|
|
||||||
|
x.report('search') {
|
||||||
|
for i in 1..5000 do
|
||||||
|
searcher.search query
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue