【发布时间】:2016-10-23 21:45:58
【问题描述】:
以下代码存在内存泄漏。它在 ruby 2.1.1 下运行。我无法找到实际的泄漏。
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是如何定义的?Queue#dequeue是什么样的(我注意到dequeue没有为 Ruby 附带的Queue定义)?谁将对象排入队列?队列中平均有多少对象? -
您的问题得到解答了吗?
标签: ruby-on-rails ruby ruby-2.1