1

API サービスの 1 つにいくつかのパフォーマンス強化が予定されています。いくつかのランダム データを取得し、新しいものと古いものの応答時間を記録して、例を並べて表示するように依頼されました。データベースからランダムなデータを取得し、両方の呼び出しで同じデータを使用してその結果セットを反復処理する簡単なスクリプトを作成しました。同じループで httparty を使用して両方の呼び出しを行っていますが、最初の呼び出しが本来よりもずっと遅いようです。2 つを切り替えると、古い呼び出しの方が速くなり、そうあるべきではありません。以下は私がしていることです。

古いコールと新しいコールを切り替えると、時間が反映されるはずですが、そうではなく、新しいコールが非常に遅くなります。

誰かが私が間違っていることに光を当てることができますか? 事前に感謝します。(私の問題が不明な場合はお知らせください)

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