| Summary: | Performance improvement for reading IBM dumps - First heap pass | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Tools] MAT | Reporter: | Brian Peacock <brian_peacock> | ||||||
| Component: | Core | Assignee: | Project Inbox <mat.core-inbox> | ||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||
| Severity: | enhancement | ||||||||
| Priority: | P3 | ||||||||
| Version: | unspecified | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Bug Depends on: | |||||||||
| Bug Blocks: | 277422 | ||||||||
| Attachments: |
|
||||||||
|
Description
Brian Peacock
Created attachment 192815 [details]
DTFJIndexBuilder Pass 1 multithreaded
Interesting, though I'd like to see where DTFJ thread safety is documented as guaranteed. DTFJHeapObjectReader has code to protect against multiple threads reading from a DTFJ dump at the same time. A simpler improvement is to avoid looking at all the superclasses of a JavaClass if we have already looked at the class. This involves also adding all the superclasses when we find the classes using the class loader classes. I've got some code for that. The TreeSet might be a bit expensive as it involving finding a class address for every comparison. If JavaClass hashCode and equals is faster then it might be better to have a regular HashSet and then sort it. Created attachment 192935 [details]
Alternative patch for speeding pass 1
Avoid getting super class more than once, and leave sorting (which involves getting the class address) to after collecting the classes.
No more work is planned to be done under this defect - we'll use another defect if there are more ideas. Comment on attachment 192815 [details]
DTFJIndexBuilder Pass 1 multithreaded
Patch not used
|