I have an app with a memory leak which i can properly fix… using tools
like Eclipse Mat and VisualVM with the -J-Djruby.reify.classes=true
aren’t
help because the leak suspects are always things like “RubyClass”,
“RubyMetaClass”, “RubyModule”…
How can i know if the leak that my app is experiencing is related to
symbols or something else?
Is there another param that can i add to my VM to get more information
that
can heap me to find the error?
just ignore MAT’s “leak suspects” - not completely but you need to do
your
own heap dump analysis … looking for GC roots with the candidates.
if it’s not showing up pointers to a RubySymbol instance than it’s
likely
not caused by :symbol usage.
in terms of class unloading (due hot redeploys) - that’s a bit different
and depends on the server and libraries used … I would look at (JRuby
and/or web-app) class-loaders.
it’s generally not that hard to analyze dumps assuming you understand
some
Java class-loading “basics” but it’s hard (at least for me) to explain
not
knowing more app details.
K.
On Mon, Feb 24, 2014 at 12:03 PM, Jos Antonio Silva P. <