First we want to say thank you for writing such a useful tool. We've been dealing with some out of memory exceptions in our product where the heap dumps produced are 1.5 GB. When we tried the HPJmeter tool to open them it consumed a number of times that much memory before we gave up. With MAT the memory used didn't go much above 1 GB. And as soon as it finished opening the heap dump, it automatically showed the problem class.
We'd like to request an improvement in how MAT processes the java.util.LinkedList class. The normal way the LinkedList shows in the object listing tree is that it has a child called header which is a java.util.LinkedList$Entry instance. And then that has a child called next which is another instance of the same class. This continues until the end of the list.
Unfortunately this means that it is nearly impossible to get useful information about the contents of a LinkedList. Looking at all of the entries requires recursively expanding each next child. But our LinkedList is much too big to make this possible. Also for some reason the elements contained by the LinkedList$Entry do not show.
Our request is that for the LinkedList class, all of the elements show up as children of the LinkedList like they do for arrays. This way you could see immediately how many elements a LinkedList contains. You would also be able to sort them by heap size or class name. We have no reason to look at the LinkedList$Entry class itself. We only care about the elements that have been added to the LinkedList.
Would this be possible to do and does it make sense to do? Thank you very much.
Try Collections grouped by size with the class java.util.LinkedList
then expand (list objects on) a line with a length > 0, select an entry and do extract list values.