I ran an application with the --trace_gc flag to try and find some performance issues. Well, it looks like I found it ...
1288678 ms: Mark-sweep 498.8 (549.0) -> 488.8 (548.0) MB, 4085 ms [idle notification: finalize idle round] [GC in old space requested].
Gadzooks! More than 4 seconds to make a GC. No wonder I have problems.
Now, the real question is: how can I find which GC'd objects, and more importantly, where were they allocated? I have already used heap snapshots in nodetime, but I do not see enough information to help me find out where these objects come from. I see some hints that make me believe it is possible that I have a circular link somewhere (for example, I see hundreds of "user" properties in a heap snapshot after just one API call from one user).
Are there any good tutorials or other good information on how to trace the cause of these large garbage collections? Or maybe I could somehow print the selected objects to try to find a circular reference ...?
Zane Claes Oct. 14 '12 at 10:12 2012-10-14 22:12
source share