Unten Code hat Speicherverlust. Es läuft unter Ruby 2.1.1. Ich kann das tatsächliche Leck nicht finden.Ruby-Code-Speicherverlust in der Schleife
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
Nach wenigen Stunden Lauf Ich habe GC.start aber es ist nicht das Problem zu lösen
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
Ich weiß nicht, wie die tatsächliche Speicherverlust zu finden.
Wie wird 'Warteschlange' definiert? Wie sieht 'Queue # dequeue' aus? (Ich habe bemerkt, dass' dequeue' nicht für die 'Queue' definiert ist, die mit Ruby geliefert wird). Wer reiht Objekte in die Warteschlange ein? Wie viele Objekte sind im Durchschnitt in der Warteschlange? – spickermann
Wurde Ihre Frage beantwortet? – Dbz