3 ms·
These graphs are almost identical to the graphs of all too many Java generational garbage collection cycles I have seen in my life. Eden is the stupid stuff yo
by znep 12y ago
These graphs are almost identical to the graphs of all too many Java generational garbage collection cycles I have seen in my life. Eden is the stupid stuff you do when figuring stuff out that hopefully never makes it into a commit unless shit gets crazy, survivor space makes it into a commit and maybe a release but hopefully gets cleaned up quickly, then once in a while you have a cleanup of the tenured generation.
This is when you eventually come back and do some bigger refactoring and cleanup to drop back down before you hit your ceiling. But you have to decide if you want to stop all other development while you do this, or if you can be smart and pull off tricks to coordinate doing the work while stuff still happens and/or parallelize it without having too much overhead. All without really knowing for sure where the ceiling is because other stuff is going on outside of your JVM.
If your major GCs can't successfully clean up your survivor space then you end up caught in a loop of endless GC attempts without making progress, looking for anything you can clean up or refactor to reduce TDD, with very little success. You start wondering if it is even possible or if you should just SIGKILL it all and start over.
Sadly, the TDD side of it doesn't fit into this analogy ... at least not yet. You could definitely work the dark side of TDD into this though... brittle, inflexible poorly factored tests that are in and of themselves technical debt and take up valuable memory you could be using to scrape by.