Tool for parsing GC logs
Перейти к файлу
dependabot[bot] de9d91d4c7
Bump actions/setup-java from 4.2.2 to 4.3.0 (#387)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](6a0805fcef...2dfa2011c5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-11 10:39:56 +12:00
.devcontainer VS Code DevContainer Config and TestData Download with Maven (#90) 2021-09-23 15:58:00 -07:00
.github Bump actions/setup-java from 4.2.2 to 4.3.0 (#387) 2024-09-11 10:39:56 +12:00
.mvn Dependencies and plugins updated to latest possible (#367) 2024-07-03 11:50:39 -04:00
IT Generational zgc (#368) 2024-07-12 21:31:52 +12:00
api Improve Archive Region Calculation (#211) (#369) 2024-08-07 04:51:50 +12:00
gclogs PreUnified now works with DateStamps only (#347) 2024-04-19 11:58:32 -04:00
images Workflow (#173) 2021-12-15 13:43:53 -08:00
parser Improve Archive Region Calculation (#211) (#369) 2024-08-07 04:51:50 +12:00
sample Generational zgc (#368) 2024-07-12 21:31:52 +12:00
vertx Dependencies and plugins updated to latest possible (#367) 2024-07-03 11:50:39 -04:00
.gitattributes Rename .gitattribute to .gitattributes 2021-10-08 15:38:13 -07:00
.gitignore refactoring of JavaVirtualMachine 2022-01-13 17:43:22 -08:00
CODE_OF_CONDUCT.md Transfer of assets to gctoolkit 2021-07-20 16:03:18 -07:00
CONTRIBUTING.md Update dependencies and ability to pass in compile version (#314) 2024-01-03 09:52:02 +13:00
CONTRIBUTORS.md Rename last files to new naming scheme (#7) 2021-07-30 10:56:40 -04:00
DEVELOPERS_GUIDE.md Add Message API (#252) 2023-01-19 08:20:41 -08:00
LICENSE Transfer of assets to gctoolkit 2021-07-20 16:03:18 -07:00
NOTICES.md Add Message API (#252) 2023-01-19 08:20:41 -08:00
README.md Update dependencies and ability to pass in compile version (#314) 2024-01-03 09:52:02 +13:00
SECURITY.md Transfer of assets to gctoolkit 2021-07-20 16:03:18 -07:00
SUPPORT.md Scan of top level files 2021-07-23 16:24:46 -07:00
mvnw Update dependencies (#354) 2024-05-10 08:51:58 -04:00
mvnw.cmd Update dependencies (#354) 2024-05-10 08:51:58 -04:00
pmd-ruleset.xml Update dependencies, plugins, maven site config (#250) 2023-01-05 10:39:02 +00:00
pom.xml Dependencies and plugins updated to latest possible (#367) 2024-07-03 11:50:39 -04:00
spotbugs-excludes.xml Update dependencies, plugins, maven site config (#250) 2023-01-05 10:39:02 +00:00
unifiedg1rules.txt docs: repair javadoc (#187) 2021-12-16 16:15:55 -08:00

README.md

Microsoft GCToolKit

GCToolkit is a set of libraries for analyzing HotSpot Java garbage collection (GC) log files. The toolkit parses GC log files into discrete events and provides an API for aggregating data from those events. This allows the user to create arbitrary and complex analyses of the state of managed memory in the Java Virtual Machine (JVM) represented by the garbage collection log.

For more detail you can read our Launch Blog Post.

GCToolKit build with Maven


Introduction

Managed memory in the Java Virtual Machine (JVM) is composed of 3 main pieces:

  1. Memory buffers known as Java heap
  2. Allocators which perform the work of getting data into Java heap
  3. Garbage Collection (GC).

While GC is responsible for recovering memory in Java heap that is no longer in use, the term is often used as a euphemism for memory management. The phrasing of Tuning GC or tuning the collector are often used with the understanding that it refers to tuning the JVMs memory management subsystem. The best source of telemetry data for tuning GC comes from GC Logs and GCToolKit has been helpful in making this task easier by providing parsers, models and an API to build analytics with. You can run the Maven project HeapOccupancyAfterCollectionSummary sample as an example of this.

Usage

In order to use this library you'll need to add its dependencies to your project. We provide the instructions for Maven below.

Maven Coordinates

Maven Central

The GCToolKit artifacts are in Maven Central. You'll then need to add the api, parser and vertx modules to your project in the dependencyManagement and/or dependencies section as you see fit.

<dependencies>
    ...
    
    <dependency>
        <groupId>com.microsoft.gctoolkit</groupId>
        <artifactId>api</artifactId>
        <version>3.0.4</version>
    </dependency>
    
    <dependency>
        <groupId>com.microsoft.gctoolkit</groupId>
        <artifactId>parser</artifactId>
        <version>3.0.4</version>
    </dependency>
    
    <dependency>
        <groupId>com.microsoft.gctoolkit</groupId>
        <artifactId>vertx</artifactId>
        <version>3.0.4</version>
    </dependency>

    ...
</dependencies>

User Discussions

Meet other developers working with GCToolKit, ask questions, and participate in the development of this project by visiting the Discussions tab.

Example

See the sample project: sample/README

Contributing

See CONTRIBUTING for full details including more options for building and testing the project.

Test Coverage Report

Core API Coverage
Coverage

Core :: Parser
Coverage::Core::Parser

Core :: Vertx
Coverage::Core::Parser

License

Microsoft GCToolKit is licensed under the MIT license.