1

我们对我们的一项 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
4

0 回答 0