Performance problem for nil string in SSLSocket.sysread
-------------------------------------------------------
Key: JRUBY-2597
URL: http://jira.codehaus.org/browse/JRUBY-2597
Project: JRuby
Issue Type: Bug
Components: OpenSSL, Performance
Environment: jruby 1.1.2 and ruby 1.8.6
Reporter: Brian Tatnall
If data provided to any SSL request is nil then the request takes a very long
time. I followed the data all the way to
SSLSocket.sysread in jopenssl.
require 'net/https'
require 'benchmark'
# Only effects SSL
# Effects get requests as well haven't checked put and delete
def request(data)
connection = Net::HTTP.new("www.google.com", 443)
connection.use_ssl = true
connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
connection.start do |connection|
connection.request_post("/tbproxy/spell?lang=en", data, { 'User-Agent' =>
"Test", 'Accept' => 'text/xml' })
end
end
puts "is nil: #{Benchmark.measure { request(nil) }.to_s.chomp}
[#{RUBY_PLATFORM}]"
puts "is not: #{Benchmark.measure { request(" ") }.to_s.chomp}
[#{RUBY_PLATFORM}]"
Output I'm seeing when running with ruby and then jruby:
is nil: 0.000000 0.010000 0.010000 ( 0.067843) [x86_64-linux]
is not: 0.000000 0.000000 0.000000 ( 0.107844) [x86_64-linux]
is nil: 10.454000 0.000000 10.454000 ( 10.454042) [java]
is not: 0.191000 0.000000 0.191000 ( 0.192685) [java]
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email