How is HeapHero different?

There are excellent Heap dump analysis tools like Eclipse MAT, Jprofiler, … These tools are handy when you want to debug/troubleshoot OutOfMemoryError. In this post we would like to highlight HeapHero’s unique features. So that you can make well-informed decisions when choosing a Heap Dump analysis tool.

Comparison

Here is a table that compares HeapHero feature set with Eclipse MAT:

ToolsetEclipse MATHeapHero
Deployment ModelRuns only on DesktopRuns on Desktop
Runs on Cloud
Runs on Data Center
Dominator Tree✔️✔️
Incoming/Outgoing References✔️✔️
Compare Reports✔️✔️
Class Histogram✔️✔️
Object Query Language✔️✔️
Run on Desktop?✔️✔️
Run on Cloud?✔️
Run on Private Data Center?✔️
Sanitize Heap Dump✔️
Micro-Metrics Monitoring (m3)✔️
Agent Technology✔️
REST API✔️
Data Masking for Secure Analysis✔️
Report Inefficient Programming Practises✔️
Analyze Thread Dumps?✔️
Analyze GC logs?✔️
Analyze App logs (& 13 more artifacts)✔️
Dashboard✔️
Compare✔️
Integration with ITSM Tools✔️
Integration with Monitoring Tools✔️

1. Safe & Secure Analysis

Heap dumps tend to contain sensitive information such as IP addresses, credit card numbers, SSN, VAT numbers … and they also tend to be very large in size (several MBs to GBs). Since they are large in size, they can’t be attached in the email and sent to the Developers/Vendors to troubleshoot. Thus SRE engineers typically upload these dump files to FTP Sites, Wiki, Sharepoint, dropbox/google drive (sometimes). Then he will send the link of these files to the Developers/Vendors. They will then download the dump files from these remote locations to their local laptops, do the analysis and share the same dump files to the QA engineers to validate their fix. Now, if you observe this sensitive dump file are stored in multiple locations:

  • FTP Site/Wiki/SharePoint
  • Developer Laptop
  • QA Engineer Laptop
  • Vendor Sites

One more unfortunate thing happens. After doing the analysis, typically, most engineers would not delete these dump files from their laptops. Whereas using HeapHero REST API, production dump files are transmitted from your production machines directly to the HeapHero server through the secure https protocol. Dump files are then stored in the HeapHero server only. Users will only see the analyzed reports and not the raw dump files. Thus, with HeapHero, dump files aren’t exchanged with anyone; they are stored in only one location: the HeapHero server.

Besides that HeapHero has capability to  Heap Dump Sanitization and remove the sensitive raw data (such as password, SSN, VAT, Credit Card numbers) from the raw Heap Dump file. In the screenshot below, you can see the sensitive data removed from the heap dump report.

Fig: Sanitized Heap Dump Presented in the Dashboard

2. Cloud Heap dump analysis

Most of the memory profiling tools are thick clients (i.e., they need to be installed on your Desktop/Laptops). It means each developer in your organization has to install this tool locally to do memory profiling. If you want to analyze large size heap dumps, your local machine may not have sufficient RAM capacity to process such large files. Beside running on Local Machine, HeapHero can run on following infrastructures as well:

  • Public cloud (AWS, Azure, GCP…)
  • Your private data center

Thus, your entire organization can install one instance of HeapHero in a central location, and everyone in the organization can upload and analyze the heap dump from this one location.

3. REST API

HeapHero exposes REST API, using this API you can post your heap dumps from remote locations to do heap dump analysis. This API returns a JSON response, which contains key metrics related to your application’s memory. SRE engineers use this API to upload the heap dumps directly from their production servers for analysis. Developers use this API in the CI/CD pipeline to see whether the code quality is improving or regressing between each code commit.

4. Analyzing heap dumps from remote location

Heap dump files are large in size (several GB). To troubleshoot the heap dump, you have to transmit the heap dump file from your production server to your local machine. From your local machine, you have to upload the heap dump file to your tool. Sometimes heap dump might be stored/archived in a remote server, AWS S3 storage,… In those circumstances, you will have to download the heap dump from that remote location and then once again upload it to the tool. HeapHero simplifies this process for you. You can pass the heap dump’s remote location URL as input to the HeapHero API or to the web interface  directly. HeapHero will download the heap dump from this remote location to analyze for you.

5. Dashboard, Search, Sharing & collaboration

Sharing Heap Dumps amongst team members is a cumbersome process. Finding a proper location to store the heap dump file is the first challenge. The team member with whom you are sharing this report should have the heap dump analysis tool installed on his local machine. So that he can open the heap dump file with the tool you are sharing to see the analysis report. HeapHero simplifies this process. HeapHero provides you a dashboard, where you can store and see all the historical heap dump analysis. All the reports in the dashboard can be searched, compared, tagged. HeapHero gives you a hyperlink like this. This hyperlink can be embedded in your emails, JIRA, and circulated amongst your team. When your team member clicks on this hyperlink, he can see the entire heap dump analysis report on his browser. HeapHero also lets you export heap dump as PDF file. This PDF file can also be circulated amongst your team members.

6. Analyze large size heap dumps

Several memory profilers are good at analyzing heap dumps of smaller size. But they struggle to analyze large size heap dumps. HeapHero is geared to analyze heap dumps easily.

7. Predicting Memory Problems through Micro-Metrics

HeapHero monitors micro-metrics such (GC Throughput, GC Pause time, memory reclamation rate….) of your application to predict memory problems before it manifests in your production environment. Once it has predicted the outage, the tool will capture heap dump and 360° artifacts (which includes GC log, thread dump, netstat, vmstat, disk usage, kernel logs, kernel parameter, top, top -H, ps, …) and do the analysis to identify the root cause of the performance problem instantly. Here’s a blog that highlights the functionalities and capabilities of Micro-Metrics Monitoring architecture.

 8. Recommendations to Optimize Memory

HeapHero reporting Memory wasted due to inefficient programming
Fig: HeapHero reporting Memory wasted due to inefficient programming

In modern world, expensive memory is wasted because of following inefficient programming practices:

  • Duplicate Strings
  • Wrong memory size settings
  • Inefficient Collections
  • Duplicate Objects
  • Duplicate arrays
  • Inefficient arrays
  • Objects waiting for finalization
  • Boxed numbers
  • Object Headers

Most of the Memory profiling tools don’t report the amount of memory wasted due to these inefficient programming practices. HeapHero precisely reports it. On top of it, the tool also recommends solutions to fix them. Here is a post which talks about the exorbitant amount of memory wasted even in a SpringBoot’s poster child pet clinic project. 

9. Tools Integration

Most Memory profiling tools don’t provide integration with external platforms. On the other hand HeapHero integrates with your ITSM tool such as JIRA, ServiceNow… whenever new incidents are detected in the production environment, tickets are automatically created. Similarly, HeapHero integrates with several APM (application performance tools) such as New Relic, AppDynamics, Grafana, Prometheus – which makes your troubleshooting seamless.

Fortune 500 Customers

Our product is trusted by industry-leading organizations to optimize Java application performance and reduce costs. Our clients include:

IndustryCustomers
Technology & Software SolutionsApple Inc., Audiocodes, Cloudbees, Crowdstrike, Datastax, Dremio, Forgerock, Intuit, Jamf, jfrog, Micron, Miro, Nutanix, ON24, Pingidentity, Pinterest, Qualcomm, SAP, Saviynt, Sentry, Service Now, Zucchetti
Banking & Financial ServicesBloomberg, CBQ, Equilend, Evertec (Paytrue S.A), Flextrade Systems, Inc., ICE, IMC, MSCI, NAIC, QNB Finansbank A.Ş, SOCIETE GENERALE, TD Ameritrade, TD Bank, Wells Fargo, Westpac
Retail & E-commerceFreshDirect, LVM, Revolveclothing, Teleflora, Walmart
InsuranceCigna/ Evernoth, Delta Dental, Farmers Insurance, Metlife
Healthcare & PharmaceuticalsCerner (Oracle), GE Precision Healthcare, NHS.Scot
TelecommunicationsGenesys Telecommunication Labs, Mobileum, Motorola, Telefonica
Automotive Rivian, Toyota
Human ResourcesTrinet, WorkDay
Travel & HospitalityKayak, Lifemiles (Avianca)

Conclusion

HeapHero stands out as a powerful tool for analyzing Java heap dumps, making it easy for developers to spot memory issues and improve application performance. Its detailed reports, user-friendly interface, and advanced features help teams quickly find and fix memory problems. With HeapHero, developers can keep their applications running smoothly and efficiently, saving time and resources.

Share your Thoughts!

Up ↑

Index

Discover more from HeapHero – Java & Android Heap Dump Analyzer

Subscribe now to keep reading and get access to the full archive.

Continue reading