Tôi đang truy cập các máy chủ khác nhau cho dữ liệu và tôi đã thử các phương thức khác nhau trong các lớp khác nhau, sử dụng http: net, curb, rest-client cơ bản và open-uriHiệu suất Ruby/Rails: OpenURI so với NET: HTTP vs Curb vs Rest-Client
(1) Làm cách nào để đo lường hiệu suất trong Ruby/Rails nói chung? (2) Bạn nghĩ phương pháp nào nhanh hơn?
Mẫu mã từ khắp 4 phương pháp khác nhau:
url = "..."
begin
io_output = open(url, :http_basic_authentication => [@user_id, @user_password])
rescue => e
error = e.message #for debugging return this
return '-'
else
output = io_output.read
hoặc
require 'net/https'
uri = URI.parse("...")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
data = http.get(uri.request_uri) #http request status
res = Net::HTTP.get_response(uri)
puts res.body if res.is_a?(Net::HTTPSuccess)
hoặc
require 'curb'
url = "..."
c = Curl::Easy.new(url) do |curl|
curl.headers["Content-type"] = "application/json"
curl.headers["Authorization"] = "Token ..."
end
c.perform
puts c.body_str
hoặc
url = "..."
resource = RestClient::Resource.new(url,
:headers => { :Authorization => "Token ...",
:content_type => "application/json"})
begin
output = resource.get
rescue => e
error = e.message #for debugging return this
return '-'
else ...
end
Tôi tìm thấy http://www.ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html Tôi sẽ thử nó – nevermind
Đăng kết quả của bạn làm câu trả lời. Tôi rất tò mò muốn gặp họ. –
Tôi sẽ làm thử nghiệm nhiều hơn nhưng! chạy này cho 5 lần cho mỗi khách hàng: http :: net ~ 13 giây mở-uri ~ 8 giây nghỉ ngơi-khách hàng ~ 6,9 và lề đường ~ 6,3 giây – nevermind