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.
@@ -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