Когда я работаю с net/http
в разработке, это очень медленно. Я установил net-http-spy
gem, чтобы получить некоторую информацию о каждом запросе, и обнаружил, что часть «открытие соединения» занимает больше всего времени (более 10 секунд). Более того, он не поддерживает соединения, поэтому его нужно открывать при каждом запросе.
opening connection to maps.google.com...
# ~10 seconds
opened
Можно ли как-нибудь улучшить производительность библиотеки net/http
, установив некоторые из ее значений по умолчанию? Я не хочу конкретного исправления запроса, но что-то, что решило бы проблему глобально. Я использую geokit
gem в текущем проекте, и я не могу изменить способ внутренней обработки запроса, кроме знания того, что он использует net/http
, и он отлично работает на производстве (Heroku), но чрезвычайно медленен в разработке.
Я использую ruby 1.9.2-p290 на Mac OS X Lion. 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 секунд.