当我在开发中使用net/http
时,它非常缓慢。我安装了net-http-spy
gem来获取有关每个请求的一些信息,并发现“打开连接”部分需要最长时间(超过10秒)。此外,它不保持连接活动状态,因此需要在每个请求上重新打开连接。
opening connection to maps.google.com...
# ~10 seconds
opened
有没有什么方法可以通过设置一些默认值来改善
net/http
库的性能?我不想修改请求本身,而是希望全局修复问题。我在当前项目中使用geokit
gem,并且无法更改其内部处理请求的方式,除了知道它正在使用net/http
之外,在生产环境(Heroku)中运行良好,但在开发环境中极其缓慢。我在Mac OS X Lion上使用ruby 1.9.2-p290。 Ruby已使用rbenv安装和管理。
以下是示例代码:
require 'net/http'
require 'uri'
time = Time.now.to_i
uri = URI.parse("http://maps.google.com/maps/geo?q=Chicago&output=xml&oe=utf-8")
Net::HTTP.get(uri)
puts (Time.now.to_i - time)
Net::HTTP.get(uri)
puts (Time.now.to_i - time)
无论我放入什么URL,每个请求总是需要精确的10秒钟。