Detecting And Fixing Memory-Related Performance Problems In Managed Languages