以下にコードがメモリリークしています。それはruby 2.1.1の下で動作しています。私は実際の漏れを見つけることができません。ランの数時間後ループ内のRubyコードのメモリリーク
q = Queue.new("test")
while true do
m = q.dequeue
body = JSON.parse(m.body)
user_id = body["Records"][0]
user = V2::User.find(user_id)
post = V2::Post.find(post_id)
end
私はGC.startを追加しましたが、そのは
q = Queue.new("test")
while true do
m = q.dequeue
body = JSON.parse(m.body)
user_id = body["Records"][0]
user = V2::User.find(user_id)
post = V2::Post.find(post_id)
GC.start
end
問題を解決しませ私は、実際のメモリリークを見つける方法がわかりません。
「キュー」はどのように定義されていますか? 'Queue#dequeue'はどのように見えますか(私は' dequeue'がRubyに付属の 'Queue'に定義されていないことに気付きました)?キューにオブジェクトをエンキューするのは誰ですか?待ち行列には平均でいくつのオブジェクトがありますか? – spickermann
あなたの質問に答えましたか? – Dbz