{"id":15069477,"url":"https://github.com/heapstats/heapstats","last_synced_at":"2025-04-10T17:41:03.388Z","repository":{"id":80452996,"uuid":"49921213","full_name":"HeapStats/heapstats","owner":"HeapStats","description":"JVMTI agent and JavaFX analyzer to gather JVM runtime information for after-the-fact analysis.","archived":false,"fork":false,"pushed_at":"2020-07-19T03:47:10.000Z","size":2008,"stargazers_count":130,"open_issues_count":1,"forks_count":16,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-24T15:21:37.233Z","etag":null,"topics":["java","javafx","jvmti","openjdk","troubleshooting"],"latest_commit_sha":null,"homepage":"http://icedtea.classpath.org/wiki/HeapStats","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HeapStats.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-19T02:45:17.000Z","updated_at":"2024-12-05T14:40:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"3f8091ed-9636-4bf7-8c6f-5fc965ce0b6b","html_url":"https://github.com/HeapStats/heapstats","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Fheapstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Fheapstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Fheapstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Fheapstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HeapStats","download_url":"https://codeload.github.com/HeapStats/heapstats/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262180,"owners_count":21074258,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","javafx","jvmti","openjdk","troubleshooting"],"created_at":"2024-09-25T01:42:42.596Z","updated_at":"2025-04-10T17:41:03.358Z","avatar_url":"https://github.com/HeapStats.png","language":"C++","readme":"HeapStats\n===================\n\nHeapStats is Java troubleshooting tool.  \nThis tool suites of three applications.\n\n* Agent\n    * HeapStats JVMTI agent for gathering JavaVM runtime information continuously.\n* Analyzer\n    * HeapStats JavaFX GUI analyzer for analysis by various graphs.\n* CLI\n    * HeapStats commandline analyzer.\n\nAlso two supplemental applications are available:\n\n* MBean\n    * MBean for operating HeapStats Agent via JMX\n    * See [mbean/README.md](mbean/README.md) for more details\n* Attacher\n    * Attach JVMTI agent to existing process\n    * See [agent/attacher/README.md](agent/attacher/README.md) for more details\n\n# Agent #\n\nAgent gathers various JavaVM runtime information such as the below.\n\n* The amount of instances and total size per live object\n* The reference relationship of objects on Java Heap\n* Thread condition\n* Process information\n\nMore detailes are [here](http://icedtea.classpath.org/wiki/HeapStats/information_to_be_collected).\n\n## Requirements ##\n\n* Linux x64 / x86_64 / AArch32\n* Oracle JDK / OpenJDK 6u18 or later\n\n**NOTE: For JDK 8u262 or later, we recommend to use built-in agent, JDK Flight Recorder, instead of HeapStats**\n\n## How to use ##\n\nYou can attach HeapStats agent by any way of the following:\n\n* `-agentlib:heapstats[=conf]`\n    * JVM will load `libheapstats.so` from library path.\n    * `libheapstats.so` should be resolved via `LD_LIBRARY_PATH` or library path (e.g. `/etc/ld.so.conf`)\n* `-agentpath:/path/to/heapstats[=conf]`\n    * JVM will load `libheapstats.so` from specified path\n* `heapstats-attacher`\n    * Attach to existing process\n    * Recommend to use on JDK 8 or earlier\n* `jcmd \u003cPID\u003e JVMTI.agent_load /path/to/libheapstats.so`\n    * Attach to existing process\n    * `JVMTI.agent_load` has been introduced in Java 9\n    * Recommend to specify with absolute path\n\n## Build requirements ##\n\n* GNU make\n* Apache Ant\n* GCC\n* JDK 7 or later\n* Intel TBB\n* NetSNMP\n* GNU Binutils\n\nSee also: [HeapStats Builder](https://github.com/HeapStats/heapstats-builder)\n\n# Analyzer #\n\nAnalyzer is GUI application for analyzing data which are collected from Agent.  \nAlso it supports JDP autodiscovery and Error Report Transmission.\n\n## Requirements ##\n\nLinux x64 or Windows x64\n\n## How to use ##\n\nRun `\u003canalyzer dir\u003e/bin/heapstats-analyzer` (Linux) or `\u003canalyzer dir\u003e\\bin\\heapstats-analyzer.bat` (Windows)\n\n### JDP ###\n\nThe automatic discovery on JDP (Java Discovery Protocol) can be enabled by the following JVM options.\n\n```\n-Dcom.sun.management.jmxremote.port=\u003cJMX port\u003e\n-Dcom.sun.management.jmxremote.authenticate=\u003ctrue|false\u003e\n-Dcom.sun.management.jmxremote.ssl=\u003ctrue|false\u003e\n-Dcom.sun.management.jmxremote.autodiscovery=true\n```\n\nJDP sends a packet per 5 seconds by default. If Analyzer can NOT receive a JDP packet from a monitoring JVM instance, color of its name on the screen will become orange.\n\n### Error Report Transmission ###\n\nOracle JDK can provide a real-time detection of JVM crash, but OpenJDK DOES NOT support it. In addition, Oracle JDK needs to be run with the following options.\n\n```\n-XX:+TransmitErrorReport\n-XX:ErrorReportServer=\u003caddress\u003e:\u003cport (4711 by default)\u003e\n```\n\n**NOTE: Error Report Transmission has been removed since JDK 12**\n\n## Build requirements ##\n\n* Apache Maven\n* JDK 13 or later\n\n## Add / Create Plugin\n\nHeapStats Analyzer supports custom plugin.  See [SamplePlugin](https://github.com/HeapStats/SamplePlugin) for details.\n\n# CLI #\n\nIf you want to analyze data which are collected by HeapStats Agent on CUI environment, you can use HeapStats CLI.\n\n## Requirements ##\n\nLinux x64 or Windows x64\n\n## How to use ##\n\nRun `\u003ccli dir\u003e/bin/heapstats-cli` (Linux) or `\u003ccli dir\u003e\\bin\\heapstats-cli.bat` (Windows)\n\nIf you want to see options, please run `heapstats-cli` with `-help`.\n\n## Build requirements ##\n\n* Apache Maven\n* JDK 13 or later\n\n# Documents and Binaries #\n\nMore detailes and released binaries are available on icedtea community: http://icedtea.classpath.org/wiki/HeapStats\n\n# Build all #\n\n```\n$ configure --with-jdk=/path/to/jdk13\n$ make\n```\n\n# Testing #\n\n* Basic test is [agent/test](agent/test)\n* Race condition tests are available on [race-condition](https://github.com/HeapStats/race-condition)\n\n# Contributing #\n\nContribution are most welcome! HeapStats is an open source project under the GNU General Public License, version 2.\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n# License #\n\n[GNU General Public License, version 2](COPYING)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheapstats%2Fheapstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheapstats%2Fheapstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheapstats%2Fheapstats/lists"}