java_bin 0.1.0
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.
- data/.document +5 -0
- data/.gitignore +25 -0
- data/LICENSE +20 -0
- data/README.rdoc +26 -0
- data/Rakefile +53 -0
- data/TODO +13 -0
- data/VERSION +1 -0
- data/ext/java_bin/ext/extconf.rb +26 -0
- data/ext/java_bin/ext/parser.c +372 -0
- data/ext/java_bin/ext/parser.h +134 -0
- data/fixtures/javabin.dat +0 -0
- data/fixtures/json.dat +55 -0
- data/fixtures/ruby.dat +55 -0
- data/java_bin.gemspec +67 -0
- data/lib/java_bin/ext/.keep +0 -0
- data/lib/java_bin/ext.rb +9 -0
- data/lib/java_bin/pure/parser.rb +219 -0
- data/lib/java_bin/pure.rb +8 -0
- data/lib/java_bin/version.rb +10 -0
- data/lib/java_bin.rb +17 -0
- data/test/helper.rb +10 -0
- data/test/test_java_bin_parser.rb +240 -0
- data/test/xxx_performance.rb +106 -0
- metadata +82 -0
@@ -0,0 +1,106 @@
|
|
1
|
+
# vim:fileencoding=utf-8
|
2
|
+
|
3
|
+
# usage: gem install json
|
4
|
+
# gem install solr-ruby
|
5
|
+
# gem install rsolr
|
6
|
+
# ruby (-r profile) performance.rb
|
7
|
+
begin
|
8
|
+
require 'rubygems'
|
9
|
+
require 'json/ext'
|
10
|
+
require 'solr'
|
11
|
+
require 'rsolr'
|
12
|
+
rescue LoadError => e
|
13
|
+
raise "load error. please $ sudo gem install json, and $ sudo gem install solr-ruby, and $ sudo gem install rsolr"
|
14
|
+
end
|
15
|
+
|
16
|
+
require File.dirname(__FILE__) + '/../lib/java_bin.rb'
|
17
|
+
|
18
|
+
def parse_ruby(input)
|
19
|
+
eval(input)
|
20
|
+
end
|
21
|
+
|
22
|
+
def parse_json(input)
|
23
|
+
JSON.parse(input)
|
24
|
+
end
|
25
|
+
|
26
|
+
def parse_javabin(input)
|
27
|
+
JavaBin.unmarshal(input)
|
28
|
+
end
|
29
|
+
|
30
|
+
TIMES=1000
|
31
|
+
TARGETS=%w(ruby json)
|
32
|
+
#TARGETS=%w(ruby json javabin)
|
33
|
+
#TARGETS=%w(javabin)
|
34
|
+
|
35
|
+
def test_parse_speed
|
36
|
+
TARGETS.each do |wt|
|
37
|
+
open("../fixtures/#{wt}.dat", "r:utf-8") do |f| # for 1.9.x
|
38
|
+
#open("#{wt}.dat", "rb") do |f| # for 1.8.x
|
39
|
+
input = f.read
|
40
|
+
#input = StringIO.new(f.read)
|
41
|
+
GC.start
|
42
|
+
result = nil # for 1.9.x
|
43
|
+
method = "parse_#{wt}"
|
44
|
+
s = Time.now
|
45
|
+
TIMES.times {
|
46
|
+
#input.pos = 0
|
47
|
+
result = send(method, input)
|
48
|
+
}
|
49
|
+
e = Time.now
|
50
|
+
#if TIMES == 1
|
51
|
+
puts "#{TIMES} times parsed by #{wt} format."
|
52
|
+
puts input.encoding if input.respond_to?(:encoding)
|
53
|
+
puts result
|
54
|
+
#end
|
55
|
+
puts "elapsed time #{e - s}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_solr_ruby
|
61
|
+
puts "***** solr-ruby"
|
62
|
+
GC.start
|
63
|
+
conn = Solr::Connection.new('http://localhost:8983/solr', :autocommit => :on)
|
64
|
+
|
65
|
+
s = Time.now
|
66
|
+
response = nil
|
67
|
+
TIMES.times {
|
68
|
+
response = conn.query('software')
|
69
|
+
}
|
70
|
+
e = Time.now
|
71
|
+
|
72
|
+
puts response.data
|
73
|
+
puts "elapsed time #{e - s}"
|
74
|
+
end
|
75
|
+
|
76
|
+
CONC = 1
|
77
|
+
def test_rsolr
|
78
|
+
puts "***** rsolr"
|
79
|
+
GC.start
|
80
|
+
|
81
|
+
s = Time.now
|
82
|
+
array = []
|
83
|
+
CONC.times do
|
84
|
+
array << Thread.new do
|
85
|
+
rsolr = RSolr.connect # :url=>'http://localhost:8983/solr'
|
86
|
+
response = nil
|
87
|
+
#rsolr.keep_alive {
|
88
|
+
(TIMES/CONC).times {
|
89
|
+
#response = JSON.parse(rsolr.select :q=>'software', :wt => :json, :pt => :standard, :fl => "*,score")
|
90
|
+
response = rsolr.select :q=>'software', :wt => :json, :pt => :standard, :fl => "*,score"
|
91
|
+
#response = rsolr.select :q=>'software', :wt => :javabin, :pt => :standard, :fl => "*,score"
|
92
|
+
#response = rsolr.select :q=>'software', :wt => :ruby, :pt => :standard, :fl => "*,score"
|
93
|
+
}
|
94
|
+
#}
|
95
|
+
puts response
|
96
|
+
end
|
97
|
+
end
|
98
|
+
array.each { |t| t.join }
|
99
|
+
e = Time.now
|
100
|
+
puts "elapsed time #{e - s}"
|
101
|
+
end
|
102
|
+
|
103
|
+
test_parse_speed
|
104
|
+
#test_solr_ruby
|
105
|
+
#test_rsolr
|
106
|
+
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: java_bin
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- kennyj
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-01-11 00:00:00 +09:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Solr JavaBin format implementation for Ruby.
|
17
|
+
email: kennyj@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions:
|
21
|
+
- ext/java_bin/ext/extconf.rb
|
22
|
+
extra_rdoc_files:
|
23
|
+
- LICENSE
|
24
|
+
- README.rdoc
|
25
|
+
- TODO
|
26
|
+
files:
|
27
|
+
- .document
|
28
|
+
- .gitignore
|
29
|
+
- LICENSE
|
30
|
+
- README.rdoc
|
31
|
+
- Rakefile
|
32
|
+
- TODO
|
33
|
+
- VERSION
|
34
|
+
- ext/java_bin/ext/extconf.rb
|
35
|
+
- ext/java_bin/ext/parser.c
|
36
|
+
- ext/java_bin/ext/parser.h
|
37
|
+
- fixtures/javabin.dat
|
38
|
+
- fixtures/json.dat
|
39
|
+
- fixtures/ruby.dat
|
40
|
+
- java_bin.gemspec
|
41
|
+
- lib/java_bin.rb
|
42
|
+
- lib/java_bin/ext.rb
|
43
|
+
- lib/java_bin/ext/.keep
|
44
|
+
- lib/java_bin/pure.rb
|
45
|
+
- lib/java_bin/pure/parser.rb
|
46
|
+
- lib/java_bin/version.rb
|
47
|
+
- test/helper.rb
|
48
|
+
- test/test_java_bin_parser.rb
|
49
|
+
- test/xxx_performance.rb
|
50
|
+
has_rdoc: true
|
51
|
+
homepage: http://github.com/kennyj/java_bin
|
52
|
+
licenses: []
|
53
|
+
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options:
|
56
|
+
- --charset=UTF-8
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
- ext
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: "0"
|
65
|
+
version:
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: "0"
|
71
|
+
version:
|
72
|
+
requirements: []
|
73
|
+
|
74
|
+
rubyforge_project:
|
75
|
+
rubygems_version: 1.3.5
|
76
|
+
signing_key:
|
77
|
+
specification_version: 3
|
78
|
+
summary: Solr JavaBin format implementation for Ruby.
|
79
|
+
test_files:
|
80
|
+
- test/xxx_performance.rb
|
81
|
+
- test/test_java_bin_parser.rb
|
82
|
+
- test/helper.rb
|