java_bin 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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