我们的api服务有一些性能增强。我被要求获取一些随机数据并记录新旧响应时间,以便我们可以看到并排的示例。我编写了一个快速脚本来从数据库中获取随机数据,并在两个调用中使用相同的数据迭代该结果集。我在同一个循环中使用httparty进行两次调用,但似乎第一次调用比它应该慢。如果我切换两个旧呼叫现在更快,它不应该。以下是我正在做的事情。
如果我转换旧电话和新电话,我应该看到时间反映但是没有,而新电话现在非常慢。
有人可以对我做错了吗?提前谢谢。 (如果我的问题不清楚,请告诉我)
class ProductCompare < Test::Unit::TestCase
def test_compare
def time_diff(start, finish)
((finish - start) * 1000.0).to_i
end
begin
api_conn = Mysql.new()
random_skus = api_conn.query("Select random data")
random_skus.each do |row|
puts row.join("\s")
products1 = "http://api-call-old/#{row.join("\s")}"
start_time1 = Time.now
response1 = HTTParty.get(products1)
end_time1 = Time.now
products1_elapsed_tm = time_diff(start_time1, end_time1)
puts "The response time for response1 is: #{products1_elapsed_tm} ms"
products2 = "http://api-call-new/#{row.join("\s")}"
start_time2 = Time.now
response2 = HTTParty.get(products2)
end_time2 = Time.now
products2_elapsed_tm = time_diff(start_time2, end_time2)
puts "The response time for response2 is: #{products2_elapsed_tm} ms"
assert_equal(response1.body, response2.body, 'The products responce did not match')
end
api_conn.close
rescue Mysql::Error => e
puts e.error
ensure
api_conn.close if api_conn
end
end
end